パスを使用した Step Functions ワークフローの入力へのアクセス - AWS Step Functions

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

パスを使用した Step Functions ワークフローの入力へのアクセス

Amazon States Language では、パスは で始まる文字列$で、JSONテキスト内のコンポーネントを識別するために使用できます。パスはJsonPath構文に従います。InputPathResultPath、および OutputPath に値を指定するときに、入力のサブセットにアクセスするパスを指定できます。詳細については、「Step Functions での入力と出力の処理」を参照してください。

注記

状態定義の Parametersフィールド内のパスを使用して、入力またはコンテキストオブジェクトのJSONノードを指定することもできます。「Step Functions APIのサービスへのパラメータの受け渡し」を参照してください。

フィールド名にJsonPath ABNFルールmember-name-shorthandの定義に含まれていない文字が含まれている場合は、角括弧表記を使用する必要があります。そのため、句読点などの特殊文字 (_ を除外) をエンコードするには、角かっこ表記を使用する必要があります。例えば、$.abc.['def ghi'] と指定します。

リファレンスパス

参照パスは、JSON構造内の 1 つのノードのみを識別できるように構文が制限されているパスです。

  • オブジェクトのフィールドにアクセスするには、ドット (.) と角括弧 ([ ]) のみを使用して表記します。

  • length() などの関数はサポートされていません。

  • subsetof などのシンボリックではないレキシカル演算子はサポートされていません。

  • 正規表現によるフィルタリング、または JSON構造内の別の値を参照することによるフィルタリングはサポートされていません。

  • 演算子 @,:、および ?はサポートされていません

例えば、if 状態入力データには次の値が含まれます。

{ "foo": 123, "bar": ["a", "b", "c"], "car": { "cdr": true } }

次のリファレンスパスは以下を返します。

$.foo => 123 $.bar => ["a", "b", "c"] $.car.cdr => true

特定の状態はパスおよびリファレンスパスを使用して、ステートマシンのフローの制御、または状態の設定やオプションを構成します。詳細については、「データフローシミュレーターによるワークフローの入力パスと出力パスの処理のモデリング」および「 でJSONPath効果的に AWS Step Functionsを使用する」を参照してください。

配列の配列の平坦化

ステートマシンの 並列ワークフローの状態 または マップワークフローの状態 状態により配列の配列が返される場合は、ResultSelector フィールドを使用してフラットな配列に変換できます。このフィールドを並列ステートまたはマップステートの定義に含めて、これらのステートの結果を操作できます。

配列をフラット化するには、次の例に示すように、 ResultSelectorフィールドで JMESPath構文[*]を使用します。

"ResultSelector": { "flattenArray.$": "$[*][*]" }

配列をフラット化する方法を示す例については、以下のチュートリアルのステップ 3 を参照してください。