

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

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

**Gerenciar estados e transformar dados**  
Saiba mais sobre como [transmitir dados entre estados com variáveis](workflow-variables.md) e [transformar dados com JSONata](transforming-data.md).

Por padrão, a entrada efetiva para o estado `Map` é o conjunto de itens de dados individuais presentes na entrada de estado bruto. Com o campo `ItemSelector`, você pode substituir os valores dos itens de dados antes que eles sejam transmitidos para o estado `Map`. 

Para substituir os valores, especifique uma entrada JSON válida que contenha um coleção de pares de chave-valor. Os pares podem ser valores estáticos fornecidos na definição da máquina de estado, valores selecionados da entrada de estado usando um [caminho](amazon-states-language-paths.md) ou valores acessados a partir do [objeto de contexto](input-output-contextobject.md). 

Se você especificar pares de chave-valor usando um caminho ou objeto de contexto, o nome da chave deverá terminar em `.$`.

**nota**  
O campo `ItemSelector` substitui o campo `Parameters` dentro do estado `Map`. Se você usa o campo `Parameters` em suas definições do estado `Map` para criar entradas personalizadas, recomendados substituí-las por `ItemSelector`.

Você pode especificar o campo `ItemSelector` tanto em um *estado Mapa inline* quanto *Mapa distribuído*.

Por exemplo, considere a seguinte entrada JSON contendo uma matriz de três itens dentro do nó `imageData`. Para cada *iteração do estado `Map`*, um item de matriz é passado para a iteração como entrada.

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

Usando o campo `ItemSelector`, você pode definir uma entrada JSON personalizada para substituir a entrada original, conforme mostrado no exemplo a seguir. O Step Functions então transmite essa entrada personalizada para cada *iteração do estado `Map`*. A entrada personalizada contém um valor estático para `size` e o valor dos dados de um objeto de contexto para o estado `Map`. O objeto de contexto `$$.Map.Item.Value` contém o valor de cada item de dados individual.

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

O exemplo a seguir mostra a entrada recebida por uma iteração do *estado Mapa inline*:

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

**dica**  
Para obter um exemplo completo de um *estado Mapa Distribuído* usando o campo `ItemSelector`, consulte [Copiar dados CSV em grande escala usando o mapa distribuído](tutorial-map-distributed.md).