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

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。