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
Saiba mais sobre como transmitir dados entre estados com variáveis e transformar dados com JSONata.
Cada estado toma uma decisão ou executa uma ação com base na entrada que recebe. Na maioria dos casos, ele passa a saída para outros estados. No Workflow Studio, você pode configurar como um estado filtra e manipula os dados de entrada e saída nas guias Entrada e Saída do painel Painel Inspetor. Use os links de Informações para acessar a ajuda contextual ao configurar entradas e saídas.

Para informações detalhadas sobre como o Step Functions processa entrada e saída, consulte Processar entrada e saída no Step Functions.
Configurar a entrada para um estado
Cada estado recebe a entrada do estado anterior como JSON. Se quiser filtrar a entrada, você poderá usar o filtro InputPath
na guia Entrada no painel Painel Inspetor. A InputPath
é uma string, começando com $
, que identifica um nó JSON específico. Eles são chamados de caminhos de referência e seguem a JsonPath sintaxe.
Para filtrar a entrada:
-
Escolha Filtrar entrada com InputPath.
-
Insira um valor válido JsonPath
para o InputPath
filtro. Por exemplo,$.data
.
O filtro InputPath
será adicionado ao fluxo de trabalho.
exemplo Exemplo 1: Usar InputPath filtro no Workflow Studio
Digamos que a entrada para o estado inclua os dados JSON a seguir.
{
"comment": "Example for InputPath",
"dataset1": {
"val1": 1,
"val2": 2,
"val3": 3
},
"dataset2": {
"val1": "a",
"val2": "b",
"val3": "c"
}
}
Para aplicar o InputPath
filtro, escolha Filtrar entrada com e InputPath, em seguida, insira um caminho de referência apropriado. Se você inserir $.dataset2.val1
, o seguinte JSON será passado como entrada para o estado.
{"a"}
Um caminho de referência também pode ter uma seleção de valores. Se os dados referenciados forem { "a":
[1, 2, 3, 4] }
, e você aplicar o caminho de referência $.a[0:2]
como o filtro InputPath
, o resultado será como a seguir.
[ 1, 2 ]
Os estados Estado paralelo do fluxo de trabalho, Estado de mapa do fluxo de trabalho e Estado de passagem do fluxo de trabalho têm uma opção adicional de filtragem de entrada chamada Parameters
na guia Entrada. Esse filtro entra em vigor após o InputPath filtro e pode ser usado para construir um objeto JSON personalizado que consiste em um ou mais pares de valores-chave. Os valores de cada par podem ser valores estáticos, podem ser selecionados na entrada ou podem ser selecionados a partir do Acessando dados de execução do objeto Context em Step Functions com um caminho.
nota
Para determinar que um parâmetro use um caminho para fazer referência a um nó JSON na entrada, o nome do parâmetro deve terminar com .$
.
exemplo Exemplo 2: crie uma entrada JSON personalizada para o estado Paralelo
Digamos que os seguintes dados JSON sejam a entrada para um estado Paralelo.
{
"comment": "Example for Parameters",
"product": {
"details": {
"color": "blue",
"size": "small",
"material": "cotton"
},
"availability": "in stock",
"sku": "2317",
"cost": "$23"
}
}
Para selecionar parte dessa entrada e passar pares de valores-chave adicionais com um valor estático, você pode especificar o seguinte no campo Parâmetros, na guia Entrada do estado Paralelo.
{
"comment": "Selecting what I care about.",
"MyDetails": {
"size.$": "$.product.details.size",
"exists.$": "$.product.availability",
"StaticValue": "foo"
}
}
Os seguintes dados JSON serão o resultado.
{
"comment": "Selecting what I care about.",
"MyDetails": {
"size": "small",
"exists": "in stock",
"StaticValue": "foo"
}
}
Configurar a saída de um estado
Cada estado produz uma saída JSON que pode ser filtrada antes de ser passada para o próximo estado. Há vários filtros disponíveis e cada um afeta a saída de uma maneira diferente. Os filtros de saída disponíveis para cada estado estão listados na guia Saída no painel Inspector. Para estados Estado de tarefa do fluxo de trabalho, todos os filtros de saída selecionados são processados nesta ordem:
-
ResultSelector
: use esse filtro para manipular o resultado do estado. Você pode construir um novo objeto JSON com partes do resultado. -
Especificando a saída de estado usando ResultPath em Step Functions
: use esse filtro para selecionar uma combinação da entrada de estado e do resultado da tarefa para passar para a saída. -
Filtrando a saída do estado usando OutputPath
: use esse filtro para filtrar a saída JSON e escolher quais informações do resultado serão passadas para o próximo estado.
Use ResultSelector
ResultSelector
é um filtro de saída opcional para os seguintes estados:
-
Estados Estado de tarefa do fluxo de trabalho, que são todos os estados listados na guia Ações do Navegador de estados.
-
Estados Estado de mapa do fluxo de trabalho, na guia Fluxo do Navegador de estados.
-
Estados Estado paralelo do fluxo de trabalho, na guia Fluxo do Navegador de estados.
ResultSelector
pode ser usado para construir um objeto JSON personalizado que consiste em um ou mais pares de chave-valor. Os valores de cada par podem ser valores estáticos ou selecionados do resultado do estado com um caminho.
nota
Para especificar que um parâmetro use um caminho para fazer referência a um nó JSON no resultado, o nome do parâmetro deve terminar com .$
.
exemplo Exemplo de uso do ResultSelector filtro
Neste exemplo, você usa ResultSelector
para manipular a resposta da chamada de API do Amazon CreateCluster EMR para um estado do Amazon CreateCluster
EMR. Veja a seguir o resultado da chamada de API CreateCluster
do Amazon EMR.
{
"resourceType": "elasticmapreduce",
"resource": "createCluster.sync",
"output": {
"SdkHttpMetadata": {
"HttpHeaders": {
"Content-Length": "1112",
"Content-Type": "application/x-amz-JSON-1.1",
"Date": "Mon, 25 Nov 2019 19:41:29 GMT",
"x-amzn-RequestId": "1234-5678-9012"
},
"HttpStatusCode": 200
},
"SdkResponseMetadata": {
"RequestId": "1234-5678-9012"
},
"ClusterId": "AKIAIOSFODNN7EXAMPLE"
}
}
Para selecionar parte dessas informações e passar um par adicional de valores-chave com um valor estático, especifique o seguinte no ResultSelectorcampo, na guia Saída do estado.
{
"result": "found",
"ClusterId.$": "$.output.ClusterId",
"ResourceType.$": "$.resourceType"
}
O uso de ResultSelector
produz o resultado a seguir.
{
"result": "found",
"ClusterId": "AKIAIOSFODNN7EXAMPLE",
"ResourceType": "elasticmapreduce"
}
Use ResultPath
A saída de um estado pode ser uma cópia da entrada, o resultado que ele produz ou uma combinação da entrada e do resultado. Use ResultPath
para controlar qual combinação desses itens são passadas para o estado de saída. Para obter mais casos de uso de ResultPath
, consulte Especificando a saída de estado usando ResultPath em Step Functions.
ResultPath
é um filtro de saída opcional para os seguintes estados:
-
Estados Estado de tarefa do fluxo de trabalho, que são todos os estados listados na guia Ações do Navegador de estados.
-
Estados Estado de mapa do fluxo de trabalho, na guia Fluxo do Navegador de estados.
-
Estados Estado paralelo do fluxo de trabalho, na guia Fluxo do Navegador de estados.
-
Estados Estado de passagem do fluxo de trabalho, na guia Fluxo do Navegador de estados.
ResultPath
pode ser usado para adicionar o resultado à entrada do estado original. O caminho especificado indica onde adicionar o resultado.
exemplo Exemplo de uso do ResultPath filtro
Digamos que os itens seguintes sejam a entrada para um estado Tarefa.
{
"details": "Default example",
"who": "AWS Step Functions"
}
O resultado do estado Tarefa é como a seguir.
Hello, AWS Step Functions
Você pode adicionar esse resultado à entrada do estado aplicando ResultPath
e inserindo um caminho de referência que indica onde adicionar o resultado, como $.taskresult
:
Com esse ResultPath
, o seguinte é o JSON que é passado como a saída do estado.
{
"details": "Default example",
"who": "AWS Step Functions",
"taskresult": "Hello, AWS Step Functions!"
}
Use OutputPath
O filtro OutputPath
permite filtrar informações indesejadas e transmitir somente a parte necessária do JSON. O OutputPath
é uma string, que começa com $
, que identifica nós no texto JSON.
exemplo Exemplo de uso do OutputPath filtro
Imagine que uma chamada de API Invocação do Lambda exiba metadados além do resultado da função do Lambda.
{
"ExecutedVersion": "$LATEST",
"Payload": {
"foo": "bar",
"colors": [
"red",
"blue",
"green"
],
"car": {
"year": 2008,
"make": "Toyota",
"model": "Matrix"
}
},
"SdkHttpMetadata": {
"AllHttpHeaders": {
"X-Amz-Executed-Version": ["$LATEST"]
...
Você pode usar OutputPath
para filtrar os metadados adicionais. Por padrão, o valor do OutputPathfiltro para estados do Lambda Invoke criados por meio do Workflow Studio é. $.Payload
Esse valor padrão remove os metadados adicionais e retorna uma saída equivalente à execução direta da função do Lambda.
O exemplo do resultado da tarefa Invocação Lambda e o valor de $.Payload
para o filtro Output transmitem os seguintes dados JSON como a saída.
{
"foo": "bar",
"colors": [
"red",
"blue",
"green"
],
"car": {
"year": 2008,
"make": "Toyota",
"model": "Matrix"
}
}
nota
O filtro OutputPath
é o último filtro de saída a entrar em vigor; portanto, se você usar filtros de saída adicionais, como ResultSelector
ou ResultPath
, deverá modificar o valor padrão de $.Payload
para o filtro OutputPath
adequadamente.