

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

# ItemSelector (Map)
<a name="input-output-itemselector"></a>

**ステートの管理とデータの変換**  
[変数を使用したステート間のデータ受け渡し](workflow-variables.md)と [JSONata を使用したデータ変換](transforming-data.md)について説明します。

デフォルトでは、`Map` 状態の有効な入力は、未加工の状態入力に含まれる個々のデータ項目のセットです。`ItemSelector` フィールドでは、データ項目を次の `Map` ステートに渡す前にその値をオーバーライドできます。

値をオーバーライドするには、キーと値のペアのコレクションを含む有効な JSON 入力を指定します。このペアは、ステートマシン定義で提供される静的な値でも、[パス](amazon-states-language-paths.md)を使用してステートの入力から選択された値でも、[Context オブジェクト](input-output-contextobject.md)からアクセスされる値でもかまいません。

パスまたは Context オブジェクトを使用してキーと値のペアを指定する場合、キー名は `.$` で終わる必要があります。

**注記**  
`Map` 状態内の `Parameters` フィールドは `ItemSelector` フィールドに置き換わります。`Map` ステート定義で `ItemSelector` フィールドを使用してカスタム入力を作成する場合は、それらを `Parameters` に置き換えることをお勧めします。

`ItemSelector` フィールドは、*インラインマップ状態*と*分散マップ状態*の両方で指定できます。

例えば、`imageData` ノード内の 3 つの項目の配列を含む次の JSON 入力があるとします。*`Map` 状態反復*ごとに、配列項目が入力として反復に渡されます。

```
[
  {
    "resize": "true",
    "format": "jpg"
  },
  {
    "resize": "false",
    "format": "png"
  },
  {
    "resize": "true",
    "format": "jpg"
  }
]
```

次の例に示すように、`ItemSelector` フィールドを使用して、元の入力をオーバーライドするカスタム JSON 入力を定義できます。次に、Step Functions はこのカスタム入力を各*`Map` 状態反復*に渡します。カスタム入力には、`size` の静的な値と、`Map` ステートの Context オブジェクトデータの値が含まれます。`$$.Map.Item.Value` Context オブジェクトには、個々のデータ項目の値が含まれます。

```
{
  "ItemSelector": {
    "size": 10,
    "value.$": "$$.Map.Item.Value"
  }
}
```

次の例は、*インラインマップステート*の反復ごとに受け取る入力を示しています。

```
{
  "size": 10,
  "value": {
    "resize": "true",
    "format": "jpg"
  }
}
```

**ヒント**  
`ItemSelector` フィールドを使用する*分散マップ状態*の完全な例については、「[分散マップを使用した大規模 CSV のコピー](tutorial-map-distributed.md)」を参照してください。