翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ステートマシンデータ
ステートマシンのデータは、次の形式です。
-
ステートマシンへの最初の入力
-
状態間で渡されるデータ
-
ステートマシンからの出力
このセクションでは、ステートマシンのデータを AWS Step Functions でフォーマットして使用する方法について説明します。
データ形式
ステートマシンデータは JSON テキストで表されます。JSON によってサポートされる任意のデータ型を使用して、ステートマシンに値を指定できます。
注記
ステートマシンの入出力
初期入力データを AWS Step Functions ステートマシンに渡すには、2 つある方法のどちらかを使用します。実行を開始すると、データを StartExecution
アクションに渡すことができます。Step Functions コンソールStartAt
状態に渡されます。入力が提供されない場合、デフォルトは空のオブジェクト ({}
) です。
実行の出力は、最後の状態 (terminal
) により返されます。この出力は、実行の結果に JSON テキストとして表示されます。
標準ワークフローの場合、DescribeExecution
アクションなど、外部呼び出し元を使用して実行履歴から実行結果を取得できます。実行結果は、Step Functions コンソール
Express ワークフローについては、ログ記録を有効にしている場合は、CloudWatch Logs から結果を取得したり Step Functions コンソールで実行を表示およびデバッグしたりすることができます。詳細については、「CloudWatch Logs を使用したログ記録」および「Step Functions コンソールでの実行の表示とデバッグ」を参照してください。
ステートマシンに関連するクォータも考慮する必要があります。詳細については、「クォータ」を参照してください。
状態の入出力
各状態の入力は、前の状態の JSON テキストで構成されます。または、StartAt
状態の場合、実行への入力で構成されます。特定のフロー制御状態は、その出力への入力をエコーします。
次の例では、ステートマシンが 2 つの数値を同時に追加します。
-
AWS Lambda 関数を定義します。
function Add(input) { var numbers = JSON.parse(input).numbers; var total = numbers.reduce( function(previousValue, currentValue, index, array) { return previousValue + currentValue; }); return JSON.stringify({ result: total }); }
-
ステートマシンを定義します。
{ "Comment": "An example that adds two numbers together.", "StartAt": "Add", "Version": "1.0", "TimeoutSeconds": 10, "States": { "Add": { "Type": "Task", "Resource": "arn:aws:lambda:us-east-1:123456789012:function:Add", "End": true } } }
-
次の JSON テキストで実行を開始します。
{ "numbers": [3, 4] }
Add
状態が JSON テキストを受け取り、Lambda 関数に渡します。Lambda 関数は、計算の結果をその状態に返します。
状態は、その出力で次の値を返します。
{ "result": 7 }
Add
はステートマシンの最終状態でもあるため、この値はステートマシンの出力として返されます。最終状態が出力を返さない場合、ステートマシンは空のオブジェクト (
{}
) を返します。
詳細については「Step Functions の入出力処理」を参照してください。