翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
パスを使用した Step Functions ワークフローの入力へのアクセス
Amazon States Language では、パスは で始まる文字列$
で、JSONテキスト内のコンポーネントを識別するために使用できます。パスはJsonPathInputPath
、ResultPath
、および OutputPath
に値を指定するときに、入力のサブセットにアクセスするパスを指定できます。詳細については、「Step Functions での入力と出力の処理」を参照してください。
注記
状態定義の Parameters
フィールド内のパスを使用して、入力またはコンテキストオブジェクトのJSONノードを指定することもできます。「Step Functions APIのサービスへのパラメータの受け渡し」を参照してください。
フィールド名にJsonPath ABNFmember-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
特定の状態はパスおよびリファレンスパスを使用して、ステートマシンのフローの制御、または状態の設定やオプションを構成します。詳細については、「データフローシミュレーターによるワークフローの入力パスと出力パスの処理のモデリング
配列の配列の平坦化
ステートマシンの 並列ワークフローの状態 または マップワークフローの状態 状態により配列の配列が返される場合は、ResultSelector フィールドを使用してフラットな配列に変換できます。このフィールドを並列ステートまたはマップステートの定義に含めて、これらのステートの結果を操作できます。
配列をフラット化するには、次の例に示すように、 ResultSelector
フィールドで JMESPath構文[*]
"ResultSelector": { "flattenArray.$": "$[*][*]" }
配列をフラット化する方法を示す例については、以下のチュートリアルのステップ 3 を参照してください。