翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Step Functions ワークフローの Amazon States Language のステートマシン構造
ステートマシンは、次のフィールドを含む構造を表すJSONテキストを使用して定義されます。
-
Comment
(オプション) -
ステートマシンの人間が読み取れる説明。
-
StartAt
(必須) -
いずれかの状態オブジェクトの名前と完全に一致する必要がある (大文字と小文字が区別されます) 文字列。
-
TimeoutSeconds
(オプション) -
ステートマシンを実行できる最大秒数。指定された時間より長く実行されると、
States.Timeout
エラー名 で実行が失敗します。 -
Version
(オプション) -
ステートマシンで使用される のバージョンです (デフォルトは「1.0」)。
-
States
(必須) -
オブジェクトには、コンマで区切られた一連の状態が含まれています。
States
フィールドには状態が含まれています。
{
"State1" : {
},
"State2" : {
},
...
}
ステートマシンは、それに含まれている状態と、状態間の関係によって定義されます。
次に例を示します。
{
"Comment": "A Hello World example of the Amazon States Language using a Pass state",
"StartAt": "HelloWorld",
"States": {
"HelloWorld": {
"Type": "Pass",
"Result": "Hello World!",
"End": true
}
}
}
このステートマシンの実行が開始されると、システムは StartAt
フィールドで参照されている状態で開始されます ("HelloWorld"
)。この状態に "End": true
フィールドがある場合、実行が停止して結果が返されます。それ以外の場合、システムは "Next":
フィールドを探し、次はその状態で続行します。このプロセスは、システムが終了状態 ("Type": "Succeed"
、"Type": "Fail"
、または "End": true
の状態) に到達するまで繰り返されます。そうでない場合は、ランタイムエラーが発生します。
ステートマシン内の状態には次のルールが適用されます。
-
状態は、囲みブロック内の任意の順序で発生しますが、リストされた順序は実行順序に影響を与えません。状態自体の内容によってこの順序が決まります。
-
ステートマシン内では、最上位の構造で
StartAt
フィールドの値により指定されるstart
状態として指定された状態が 1 つだけ存在します。この状態は、実行が開始されたときに最初に実行される状態です。 -
End
フィールドがtrue
の状態は、end
(またはterminal
) 状態とみなされます。ステートマシンのロジックによっては (ステートマシンに実行のブランチが複数あるかどうかなど)、複数のend
状態が存在する可能性があります。 -
ステートマシンが 1 つの状態だけで構成される場合、
start
状態とend
状態の両方になることができます。
ワークフローの共通状態フィールド
以下のフィールドは、すべての状態要素に共通です。
-
Type
(必須) -
状態のタイプ。
-
Next
-
現在の状態が終了するときに実行される次の状態の名前。
Choice
など、一部の状態では複数の移行状態が許可されます。現在の状態がワークフローの最後の状態、ワークフロー状態が成功 または ワークフローの状態の失敗 またはなどのターミナルステートである場合は、
Next
フィールドを指定する必要はありません。 -
End
-
true
に設定されている場合は、この状態を終了状態として指定します (実行が終了されます)。ステートマシンごとに、任意の数の終了状態が存在します。状態ではNext
またはEnd
のどちらか 1 つのみを使用できます。Choice
などの一部の状態タイプや、ワークフロー状態が成功 や ワークフローの状態の失敗 などのターミナルの状態は、End
フィールドをサポートしていないか、または使用していません。 -
Comment
(オプション) -
状態に関する、人間が読み取れる説明を保持します。
-
InputPath
(オプション) -
状態の入力の一部を選択して状態の処理タスクに渡すパス。省略した場合、入力全体を指定する値
$
が設定されます。詳細については、入力および出力処理を参照してください。 -
OutputPath
(オプション) -
状態の出力の一部を選択して次の状態に渡すパス。省略した場合、出力全体を指定する値
$
が設定されます。詳細については、入力および出力処理を参照してください。