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

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

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

状態の管理とデータの変換

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

Comment (オプション)

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

QueryLanguage (オプション。省略すると、デフォルトは JSONPath
  • ステートマシンで使用されるクエリ言語の名前。指定できる値は JSONPathJSONata です。

  • ステートマシンに指定しない場合、各状態のデフォルト値は JSONPath です。

  • 最上位ステートマシンのクエリ言語が の場合JSONPath、QueryLanguage を に設定することで、個々の状態がクエリ言語を上書きできますJSONata。このアプローチを使用すると、ステートマシンを JSONPath から JSONata に一度に 1 つの状態まで段階的に変換できます。

  • 注: 最上位の JSONata ベースのステートマシンを JSONata 状態と JSONPath 状態の組み合わせに戻すことはできません。

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 (必須)

状態のタイプ。

QueryLanguage (オプション。省略すると、デフォルトは JSONPath
  • 状態で使用されるクエリ言語の名前。指定できる値は JSONPathJSONata です。

  • 最上位ステートマシンのクエリ言語が の場合JSONPath、QueryLanguage を に設定することで、個々の状態がクエリ言語を上書きできますJSONata。このアプローチを使用すると、ステートマシンを JSONPath から JSONata に一度に 1 つの状態まで段階的に変換できます。

Next

現在の状態が終了するときに実行される次の状態の名前。Choice など、一部の状態では複数の移行状態が許可されます。

現在の状態がワークフローの最後の状態、Succeed ワークフロー状態 または ワークフロー状態に失敗する またはなどのターミナルステートである場合は、Next フィールドを指定する必要はありません。

End

true に設定されている場合は、この状態を終了状態として指定します (実行が終了されます)。ステートマシンごとに、任意の数の終了状態が存在します。状態では Next または End のどちらか 1 つのみを使用できます。Choice などの一部の状態タイプや、Succeed ワークフロー状態ワークフロー状態に失敗する などのターミナルの状態は、End フィールドをサポートしていないか、または使用していません。

Comment (オプション)

状態に関する、人間が読み取れる説明を保持します。

Assign (オプション)

変数を保存するために使用されます。Assign フィールドは、変数名と割り当てられた値を定義するキーと値のペアを持つ JSON オブジェクトを受け入れます。オブジェクトまたは配列内の文字列値を含む文字列値は、{% %}文字で囲まれたときに JSONata として評価されます。

詳細については、「変数を使用して状態間でデータを渡す」を参照してください。

Output (オプション、JSONata のみ)

状態からの出力を指定および変換するために使用されます。指定すると、値は状態出力のデフォルトを上書きします。

出力フィールドは、任意の JSON 値 (オブジェクト、配列、文字列、数値、ブール値、null) を受け入れます。オブジェクトまたは配列内の文字列値を含む文字列値は、{% %} 文字で囲まれている場合、JSONata として評価されます。

出力は、JSONata 式を直接受け入れます。例:「Output」:「{% jsonata expression %}」

詳細については、入力および出力処理を参照してください。

InputPath (オプション、JSONPath のみ)

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

OutputPath (オプション、JSONPath のみ)

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