Step Functions の入力および出力処理 - AWS Step Functions

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

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 タスク状態をどのように通過するかを示しています。

Diagram showing JSONata task state flow with input, arguments, output, and action components.

JSONPath による入出力の処理

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

JSONPath を使用するステートマシンの場合、、InputPath、、ParametersResultSelectorResultPathの各フィールドは、状態間のデータフローを制御しますOutputPath。各 JSONPath フィールドは、ワークフローの各状態を移動するときに JSON を操作できます。

JSONPath フィールドはパスを使用して、入力または結果から JSON の一部を選択できます。パスは $ で始まる文字列です。これを使用して、JSON テキスト内でノードを識別します。Step Functions パスは JsonPath 構文を使用します。

次の図は、JSON 情報が JSONPath タスク状態を通過する方法を示しています。は、 Task状態のタスク ( AWS Lambda 関数など) に渡す JSON 入力の部分InputPathを選択します。アクションに送信されるデータは、 Parametersフィールドで調整できます。次に、 を使用してResultSelector、続行するアクション結果の一部を選択できます。 ResultPath は、出力に渡す状態入力とタスク結果の組み合わせを選択します。 は、JSON 出力をフィルタリングして、出力に渡される情報をさらに制限OutputPathできます。

フィルターの順序: InputPath、Parameters、ResultSelector、ResultPath、および OutputPath。