ステートマシンデータ - AWS Step Functions

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

ステートマシンデータ

ステートマシンのデータは、次の形式です。

  • ステートマシンへの最初の入力

  • 状態間で渡されるデータ

  • ステートマシンからの出力

このセクションでは、ステートマシンのデータを AWS Step Functions でフォーマットして使用する方法について説明します。

データ形式

ステートマシンデータは JSON テキストで表されます。JSON によってサポートされる任意のデータ型を使用して、ステートマシンに値を指定できます。

注記
  • JSON テキスト形式の数値は、JavaScript セマンティクスに準拠します。これらの数値は通常、倍精度 IEEE-854 値に対応しています。

  • 有効な JSON テキストを次に示します。

    • 引用符で区切られたスタンドアロンの文字列

    • オブジェクト

    • 配列

    • 数字

    • ブール値

    • null

  • 状態の出力は、次の状態の入力になります。ただし、入力および出力処理を使用することにより、状態が入力データのサブセットでのみ機能するよう制限できます。

ステートマシンの入出力

初期入力データを 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 つの数値を同時に追加します。

  1. 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 }); }
  2. ステートマシンを定義します。

    { "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 } } }
  3. 次の JSON テキストで実行を開始します。

    { "numbers": [3, 4] }

    Add 状態が JSON テキストを受け取り、Lambda 関数に渡します。

    Lambda 関数は、計算の結果をその状態に返します。

    状態は、その出力で次の値を返します。

    { "result": 7 }

    Add はステートマシンの最終状態でもあるため、この値はステートマシンの出力として返されます。

    最終状態が出力を返さない場合、ステートマシンは空のオブジェクト ({}) を返します。

詳細については「Step Functions の入出力処理」を参照してください。