翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Step Functions の入力および出力処理
変数と JSONata による状態の管理
Step Functions は最近、状態を管理し、データを変換するための変数と JSONata を追加しました。
詳細については、ブログ記事「Simplifying developer experience with variables and JSONata in AWS Step Functions
Step Functions 実行が JSON 入力を受信すると、そのデータはワークフローの最初の状態を入力として渡します。
JSONata では、 から状態入力を取得できます$states.input
。ステートマシンの実行では、 にその初期入力データも提供されますコンテキストオブジェクト。元のステートマシン入力は、ワークフローの任意の時点で から取得できます$states.context.Execution.Input
。
状態が終了すると、その出力はステートマシンの次の状態で使用できるようになります。状態出力を変更しない限り、状態入力はデフォルトで状態出力として渡されます。後のステップで必要になる可能性のあるデータについては、変数に保存することを検討してください。詳細については、変数を使用して状態間でデータを渡す を参照してください。
QueryLanguage レコメンデーション
新しいステートマシンの場合は、JSONata クエリ言語をお勧めします。クエリ言語を指定しないステートマシンでは、ステートマシンは下位互換性のためにデフォルトで JSONPath に設定されます。ステートマシンまたは個々の状態に対して JSONata を使用するには、オプトインする必要があります。
JSONata による入出力の処理
JSONata 式を使用すると、データを選択して変換できます。Arguments
フィールドでは、 アクションに送信されるデータをカスタマイズできます。結果は、 Output
フィールドのカスタム状態出力に変換できます。Assign
フィールドの変数にデータを保存することもできます。詳細については、JSONata を使用したデータの変換」を参照してください。
次の図は、JSON 情報が JSONata タスク状態をどのように通過するかを示しています。

JSONPath による入出力の処理
状態の管理とデータの変換
変数を使用して状態間でデータを渡す方法と、JSONata を使用してデータを変換する方法について説明します。
JSONPath を使用するステートマシンの場合、、InputPath
、、Parameters
ResultSelector
、 ResultPath
の各フィールドは、状態間のデータフローを制御しますOutputPath
。各 JSONPath フィールドは、ワークフローの各状態を移動するときに JSON を操作できます。
JSONPath フィールドはパスを使用して、入力または結果から JSON の一部を選択できます。パスは $
で始まる文字列です。これを使用して、JSON テキスト内でノードを識別します。Step Functions パスは JsonPath
次の図は、JSON 情報が JSONPath タスク状態を通過する方法を示しています。は、 Task
状態のタスク ( AWS Lambda 関数など) に渡す JSON 入力の部分InputPath
を選択します。アクションに送信されるデータは、 Parameters
フィールドで調整できます。次に、 を使用してResultSelector
、続行するアクション結果の一部を選択できます。 ResultPath
は、出力に渡す状態入力とタスク結果の組み合わせを選択します。 は、JSON 出力をフィルタリングして、出力に渡される情報をさらに制限OutputPath
できます。
