パス - AWS Step Functions

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

パス

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

注記

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

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

リファレンスパス

リファレンスパスは、JSON 構造内の単一ノードのみを識別できるように構文が制限されたパスです。

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

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

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

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

  • フィルター処理される現在のノードを照合する @ 演算子は、スカラー値は照合しません。オブジェクトのみを照合します。

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

{ "foo": 123, "bar": ["a", "b", "c"], "car": { "cdr": true }, "jar": [{"a": 1}, {"a": 5}, {"a": 2}, {"a": 7}, {"a": 3}] }

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

$.foo => 123 $.bar => ["a", "b", "c"] $.car.cdr => true $.jar[?(@.a >= 5)] => [{"a": 5}, {"a": 7}]

特定の状態はパスおよびリファレンスパスを使用して、ステートマシンのフローの制御、または状態の設定やオプションを構成します。詳細については、「Modeling workflow input and output path processing with data flow simulator」と「Using JSONPath effectively in AWS Step Functions」を参照してください。

配列の配列の平坦化

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

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

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

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