ItemsPath (Mapa, JSONPath somente) - AWS Step Functions

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á.

ItemsPath (Mapa, JSONPath somente)

Gerenciar estados e transformar dados

Esta página se refere JSONPath a. 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.

Em estados JSONPath baseados, use o ItemsPath campo para selecionar uma matriz ou objeto em uma entrada JSON fornecida a um Map estado. Por padrão, um estado Map define ItemsPath como $, o que seleciona toda a entrada.

  • Se a entrada para o Map estado for uma matriz JSON, ela executará uma iteração para cada item na matriz, passando esse item para a iteração como entrada

  • Se a entrada para o Map estado for um objeto JSON, ela executará uma iteração para cada par de valores-chave no objeto, passando o par para a iteração como entrada

nota

Você só poderá usar ItemsPath no estado Mapa Distribuído se usar uma entrada JSON transmitida de um estado anterior no fluxo de trabalho.

O valor de ItemsPath deve ser um caminho de referência, e esse caminho deve ser avaliado como uma matriz ou objeto JSON. Por exemplo, considere a entrada para um estado Map que inclua duas matrizes, como o exemplo a seguir.

{ "ThingsPiratesSay": [ { "say": "Avast!" }, { "say": "Yar!" }, { "say": "Walk the Plank!" } ], "ThingsGiantsSay": [ { "say": "Fee!" }, { "say": "Fi!" }, { "say": "Fo!" }, { "say": "Fum!" } ] }

Nesse caso, você pode especificar qual matriz usar para iterações do estado Map selecionando-a com ItemsPath. A definição de máquina de estado a seguir especifica a matriz ThingsPiratesSay na entrada usando ItemsPath. Em seguida, ela executa uma iteração do estado de passagem SayWord para cada item na matriz ThingsPiratesSay.

{ "StartAt": "PiratesSay", "States": { "PiratesSay": { "Type": "Map", "ItemsPath": "$.ThingsPiratesSay", "ItemProcessor": { "StartAt": "SayWord", "States": { "SayWord": { "Type": "Pass", "End": true } } }, "End": true } } }

Para objetos JSON aninhados, você pode usar ItemsPath para selecionar um objeto específico na entrada. Considere a seguinte entrada com dados de configuração aninhados:

{ "environment": "production", "servers": { "web": { "server1": {"port": 80, "status": "active"}, "server2": {"port": 8080, "status": "inactive"} }, "database": { "primary": {"host": "db1.example.com", "port": 5432}, "replica": {"host": "db2.example.com", "port": 5432} } } }

Para iterar sobre o objeto do servidor web, você definiria comoItemsPath: $.servers.web

{ "StartAt": "ProcessWebServers", "States": { "ProcessWebServers": { "Type": "Map", "ItemsPath": "$.servers.web", "ItemProcessor": { "StartAt": "CheckServer", "States": { "CheckServer": { "Type": "Pass", "End": true } } }, "End": true } } }

Ao processar a entrada, o estado Map aplica ItemsPath depois do InputPath. Ele é operado na entrada efetiva para o estado depois que InputPath filtra a entrada.

Para obter mais informações sobre estados Map, consulte os tópicos a seguir: