JSONPath パスの使用 - AWS Step Functions

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

JSONPath パスの使用

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

Step Functions は最近、状態を管理し、データを変換JSONataするために変数 と を追加しました。

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

Amazon States Language では、パスは で始まる文字列$で、JSONテキスト内のコンポーネントを識別するために使用できます。パスはJsonPath構文に従います。構文は、 QueryLanguageが に設定されている場合にのみ使用できますJSONPath。InputPathResultPath、および OutputPath に値を指定するときに、入力のサブセットにアクセスするパスを指定できます。

フィールド名に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」を参照してください。

配列の配列の平坦化

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

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

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

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