メニュー
AWS Step Functions
開発者ガイド

ステートマシン構造

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

Comment(オプション)

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

StartAt (必須)

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

TimeoutSeconds(オプション)

ステートマシンの実行にかかる最大秒数。指定された時間より実行に時間がかかった場合、実行は States.Timeout エラー名で失敗します。

Version(オプション)

ステートマシンで使用される Amazon ステートメント言語 のバージョン。デフォルトは「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 状態の両方になることができます。