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)
Gerenciar estados e transformar dados
Saiba mais sobre como transmitir dados entre estados com variáveis e transformar dados com JSONata.
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 ou valores acessados a partir do objeto de contexto.
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.