ItemsPath (マップ、JSONPath のみ) - AWS Step Functions

ItemsPath (マップ、JSONPath のみ)

ステートの管理とデータの変換

このページは JSONPath に関するものです。Step Functions では最近、ステート管理とデータ変換のために変数と JSONata が追加されました。

変数を使用したデータ受け渡しJSONata を使用したデータ変換について説明します。

JSONPath ベースのステートでは、ItemsPath フィールドを使用して、Map ステートに提供される JSON 入力内の配列を選択します。Map 状態は配列内の各項目に対して一連のステップを反復します。デフォルトでは、Map 状態は ItemsPath$ に設定し、これにより入力全体が選択されます。Map 状態への入力が JSON 配列の場合は、配列内の各項目に対して反復処理を実行し、その項目を入力として反復に渡します。

注記

分散マップ状態ItemsPath を使用できるのは、ワークフローの前のステートから渡された JSON 入力を使用する場合のみです。

ItemsPath フィールドを使用すると、反復処理に使用する JSON 配列を指す、入力内の位置を指定できます。ItemsPath の値は参照パスで、そのパスは JSON 配列を指している必要があります。例えば、次の例のように、Map 状態への入力に 2 つの配列が含まれている場合について考えてみます。

{ "ThingsPiratesSay": [ { "say": "Avast!" }, { "say": "Yar!" }, { "say": "Walk the Plank!" } ], "ThingsGiantsSay": [ { "say": "Fee!" }, { "say": "Fi!" }, { "say": "Fo!" }, { "say": "Fum!" } ] }

この場合、ItemsPath で配列を選択して、Map 状態の反復処理に使用する配列を指定できます。次のステートマシン定義では ItemsPath を使用して入力内の ThingsPiratesSay 配列を指定し、ThingsPiratesSay 配列内の各項目に対して SayWord パス状態の反復処理を実行します。

{ "StartAt": "PiratesSay", "States": { "PiratesSay": { "Type": "Map", "ItemsPath": "$.ThingsPiratesSay", "ItemProcessor": { "StartAt": "SayWord", "States": { "SayWord": { "Type": "Pass", "End": true } } }, "End": true } } }

入力を処理する場合、Map 状態は InputPath の後に ItemsPath を適用します。InputPath によって入力がフィルタリングされた後、状態への有効な入力に対して処理されます。

Map 状態の詳細については、以下を参照してください。