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á.
Gerenciando o estado e transformando dados
Recentemente, o Step Functions adicionou variáveis JSONata para gerenciar dados de estado e transformação.
Saiba mais sobre como transmitir dados 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. O campo ItemSelector
permite que você substitua os valores dos itens de dados antes que eles sejam transmitidos para o estado Map
. Para substituir os valores, especifique uma JSON entrada válida que contenha uma coleção de pares de valores-chave. Esses 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 do objeto Context.
Se você especificar pares de valores-chave 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, é altamente recomendável substituí-las por ItemSelector
.
Você pode especificar o campo ItemSelector
tanto em um estado Mapa inline quanto Mapa distribuído.
Por exemplo, considere a JSON entrada a seguir que contém uma matriz de três itens dentro do imageData
nó. 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 ItemSelector
campo, você pode definir uma JSON entrada 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 do objeto Context para o Map
estado. O objeto $$.Map.Item.Value
Context 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.