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á.
Especificando a saída de estado usando ResultPath em Step Functions
Gerenciando o estado e transformando 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.
A saída de um estado pode ser uma cópia de sua entrada, o resultado que ele produz (por exemplo, a saída da função do Lambda de um estado Task) 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. 
Os seguintes tipos de estado podem gerar um resultado e podem incluir ResultPath:
Use ResultPath para combinar um resultado de tarefa com entrada de tarefa, ou para selecionar um desses. O caminho que você fornece para ResultPath controla quais informações passam para a saída. 
nota
 ResultPathestá limitado ao uso de caminhos de referência, que limitam o escopo, de modo que o caminho deve identificar somente um único nó em JSON. Consulte Caminhos de referência no Linguagem de estados da Amazon.
Use ResultPath para substituir a entrada pelo resultado da tarefa
Se você não especificar umResultPath, o comportamento padrão será o mesmo de"ResultPath": "$". O estado substituirá toda a entrada do estado pelo resultado da tarefa.
# State Input
{  
 "comment": "This is a test",
 "details": "Default example",
 "who" : "Step Functions"
}
# Path 
"ResultPath": "$"
# Task result
"Hello, Step Functions!"
# State Output
"Hello, Step Functions!"
    nota
ResultPath é usado para incluir conteúdo do resultado com a entrada, antes de transmiti-lo para a saída. Mas, se ResultPath não for especificado, a ação padrão é substituir toda a entrada.
Descarte o resultado e mantenha a entrada original
Se você ResultPath definir comonull, o estado passará a entrada original para a saída. A carga de entrada do estado será copiada diretamente para a saída, sem considerar o resultado da tarefa. 
# State Input
{  
 "comment": "This is a test",
 "details": "Default example",
 "who" : "Step Functions"
}
# Path 
"ResultPath": null
# Task result
"Hello, Step Functions!"
# State Output
{  
 "comment": "This is a test",
 "details": "Default example",
 "who" : "Step Functions"
}
    
   
    Use ResultPath para incluir o resultado com a entrada
Se você especificar um caminho para ResultPath, a saída do estado combinará a entrada do estado e o resultado da tarefa:
# State Input
{  
 "comment": "This is a test",
 "details": "Default example",
 "who" : "Step Functions"
}
# Path 
"ResultPath": "$.taskresult"
# Task result
"Hello, Step Functions!"
# State Output
{  
 "comment": "This is a test",
 "details": "Default example",
 "who" : "Step Functions",
 "taskresult" : "Hello, Step Functions!"
}
    
    Você também pode inserir o resultado em um nó filho da entrada. Defina o ResultPath da seguinte forma.
"ResultPath": "$.strings.lambdaresult"
Dada a seguinte entrada:
{ "comment": "An input comment.", "strings": { "string1": "foo", "string2": "bar", "string3": "baz" }, "who": "AWS Step Functions" }
O resultado da tarefa seria inserido como filho do strings nó na entrada.
{ "comment": "An input comment.", "strings": { "string1": "foo", "string2": "bar", "string3": "baz", "lambdaresult": "Hello, Step Functions!" }, "who": "AWS Step Functions" }
A saída de estado JSON agora inclui a entrada original com o resultado como um nó filho.
Use ResultPath para atualizar um nó na entrada com o resultado
Se você especificar um nó existente para ResultPath, o resultado da tarefa substituirá esse nó existente:
# State Input
{  
 "comment": "This is a test",
 "details": "Default example",
 "who" : "Step Functions"
}
# Path 
"ResultPath": "$.comment"
# Task result
"Hello, Step Functions!"
# State Output
{  
 "comment": "Hello, Step Functions!",
 "details": "Default example",
 "who" : "Step Functions"
}
   
    Use  ResultPath  para incluir erro e entrada em um Catch
    Em alguns casos, talvez você queira preservar a entrada original com o erro. Use ResultPath em um Catch para incluir o erro com a entrada original, em vez de substituí-lo. 
"Catch": [{ "ErrorEquals": ["States.ALL"], "Next": "NextTask", "ResultPath": "$.error" }]
Se a declaração Catch anterior detectar um erro, ela incluirá o resultado em um nó error dentro da mesma entrada de estado. Por exemplo, com a seguinte entrada:
{"foo": "bar"}
A saída do estado ao detectar um erro é exibida a seguir.
{ "foo": "bar", "error": { "Error": "Error here" } }
Para obter mais informações sobre como tratar erros, consulte o seguinte: