翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
状態の管理とデータの変換
変数を使用して状態間でデータを渡す方法と、JSONata を使用してデータを変換する方法について説明します。
Wait
状態 ("Type": "Wait"
) は、ステートマシンの続行を指定された時間遅延させます。相対時間 (状態が開始してからの秒数で指定) と絶対時間 (タイムスタンプで指定) のいずれかを選択できます。
共通状態フィールドに加えて、Wait
状態には次のいずれかのフィールドがあります。
-
Seconds
-
Next
フィールドで指定された状態の開始を待機する時間 (秒)。time は、0 から 99999999 までの整数値として指定する必要があります。JSONata 状態では、JSONata 式を指定することもできます。JSONata 式は、指定された範囲内の整数に評価する必要があります。 -
Timestamp
-
Next
フィールドで指定された状態の開始を待機する絶対時間。タイムスタンプは、ISO 8601 の RFC3339 プロファイルに従う必要があります。ただし、大文字の
T
によって日付部分と時刻部分を区切り、大文字のZ
によって数値のタイムゾーンオフセットが存在しないことを示す必要があるという追加の制限があります。例えば、2024-08-18T17:33:00Z
などです。JSONata 状態では、JSONata 式を指定して、前の要件に準拠した文字列を生成できます。
注記
現在、待機時間をタイムスタンプとして指定すると、Step Functions は時間値を最大秒と見なし、ミリ秒を切り捨てます。
-
SecondsPath
(オプション、JSONPath のみ) -
状態のパスは、入力データを整数値にし、次の状態に進む前に待機する時間を秒単位で指定します。
-
TimestampPath
(オプション、JSONPath のみ) -
のパスは、入力データを次の状態に進む前に待機する絶対日時 (タイムスタンプ) に状態します。
注記
Seconds
、Timestamp
、SecondsPath
、または TimestampPath
のいずれかちょうど 1 つを指定する必要があります。また、標準ワークフローとエクスプレスワークフローに指定できる最大待機時間は、それぞれ 1 年と 5 分です。
待機状態の例
例えば、次の Wait
状態はステートマシンに 10 秒の遅延を導入します。
"wait_ten_seconds": {
"Type": "Wait",
"Seconds": 10,
"Next": "NextState"
}
次の例では、Wait
ステートは絶対時間 2024 年 3 月 14 日午前 1:59 (UTC) まで待機します。
"wait_until" : {
"Type": "Wait",
"Timestamp": "2024-03-14T01:59:00Z",
"Next": "NextState"
}
待機時間をハードコードする必要はありません。例えば、以下の入力データがあるとします。
{
"expirydate": "2024-03-14T01:59:00Z"
}
リファレンスパスStep Functions の入力および出力処理を使用して入力データから選択することで、値「expirydate」を入力データから選択できます。
"wait_until" : {
"Type": "Wait",
"TimestampPath": "$.expirydate",
"Next": "NextState"
}