AWS Step Functions
開発者ガイド

ステートマシン構造

ステートマシンは、次のフィールドを含む構造を表す JSON テキストを使用して定義されます。

Comment(オプション)

ステートマシンの人間が読み取れる説明。

StartAt (必須)

いずれかの状態オブジェクトの名前と完全に一致する必要がある (大文字と小文字が区別されます) 文字列。

TimeoutSeconds(オプション)

ステートマシンを実行できる最大秒数。指定された時間より長く実行されると、States.Timeout エラー名 で実行が失敗します。

Version(オプション)

ステートマシンで使用される Amazon ステートメント言語 のバージョンです (デフォルトは「1.0」)。

States (必須)

オブジェクトには、コンマで区切られた一連の状態が含まれています。

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 状態の両方になることができます。