Step Functions ワークフローの Amazon States Language のステートマシン構造 - AWS Step Functions

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

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 (オプション)

状態の出力の一部を選択して次の状態に渡すパス。省略した場合、出力全体を指定する値 $ が設定されます。詳細については、入力および出力処理を参照してください。