翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ItemSelector (Map)
状態の管理とデータの変換
変数を使用して状態間でデータを渡す方法と、JSONata を使用してデータを変換する方法について説明します。
デフォルトでは、Map 状態の有効な入力は、未加工の状態入力に含まれる個々のデータ項目のセットです。ItemSelector フィールドを使用すると、データ項目の値が Map状態に渡される前に上書きできます。
値を上書きするには、キーと値のペアのコレクションを含む有効な JSON 入力を指定します。ペアは、ステートマシン定義で提供される静的な値、パスを使用して状態入力から選択された値、またはコンテキストオブジェクトからアクセスされた値です。
パスまたはコンテキストオブジェクトを使用してキーと値のペアを指定する場合、キー名は で終わる必要があります.$。
注記
Map 状態内の Parameters フィールドは ItemSelector フィールドに置き換わります。Map 状態定義の Parametersフィールドを使用してカスタム入力を作成する場合は、 に置き換えることをお勧めしますItemSelector。
ItemSelector フィールドは、インラインマップ状態と分散マップ状態の両方で指定できます。
例えば、imageData ノード内の 3 つの項目の配列を含む次の JSON 入力があるとします。Map 状態反復ごとに、配列項目が入力として反復に渡されます。
[
  {
    "resize": "true",
    "format": "jpg"
  },
  {
    "resize": "false",
    "format": "png"
  },
  {
    "resize": "true",
    "format": "jpg"
  }
]次の例に示すように、ItemSelector フィールドを使用して、元の入力をオーバーライドするカスタム JSON 入力を定義できます。次に、Step Functions はこのカスタム入力を各Map 状態反復に渡します。カスタム入力には、 の静的値sizeと、 Map状態のコンテキストオブジェクトデータの値が含まれます。$$.Map.Item.Value Context オブジェクトには、個々のデータ項目の値が含まれます。
{
  "ItemSelector": {
    "size": 10,
    "value.$": "$$.Map.Item.Value"
  }
}次の例は、インラインマップステートの反復ごとに受け取る入力を示しています。
{
  "size": 10,
  "value": {
    "resize": "true",
    "format": "jpg"
  }
}ヒント
ItemSelector フィールドを使用する分散マップ状態の完全な例については、「分散マップを使用した大規模 CSV のコピー」を参照してください。