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á.
Usando TestState API para testar um estado em Step Functions
O TestStateAPIaceita a definição de um único estado e a executa. É possível testar um estado sem criar uma máquina de estado nem atualizar uma existente.
Usando o TestState API, você pode testar o seguinte:
-
O fluxo de dados de processamento de entrada e de saída de um estado.
-
Uma AWS service (Serviço da AWS) integração com outras Serviços da AWS solicitações e respostas
-
Uma solicitação e resposta de HTTPtarefa
Para testar um estado, você também pode usar o Step Functions console, AWS Command Line Interface (AWS CLI), ou SDK o.
O TestState
API assume uma IAM função que deve conter o necessário IAM permissões para os recursos que seu estado acessa. Para obter informações sobre as permissões necessárias a um estado, consulte IAM permissões para usar TestState API.
Tópicos
Considerações sobre o uso do TestState API
Usando o TestStateAPI, você pode testar somente um estado por vez. Os estados que você pode testar incluem os seguintes:
Ao usar o TestState
API, tenha em mente as seguintes considerações.
-
TestState APIIsso não inclui suporte para o seguinte:
-
Estados Estado do fluxo de trabalho da tarefa que usem os seguintes tipos de recurso:
-
Padrões de integração de serviço do tipo
.sync
ou.waitForTaskToken
-
-
Um teste pode ser executado por até cinco minutos. Se um teste exceder essa duração, ele falhará com o erro
States.Timeout
.
Usando níveis de inspeção em TestState API
Para testar um estado usando o TestStateAPI, você fornece a definição desse estado. O teste então exibe uma saída. Para cada estado, é possível especificar a quantidade de detalhes que você deseja visualizar nos resultados do teste. Esses detalhes fornecem informações adicionais sobre o estado que você está testando. Por exemplo, se você usou algum filtro de processamento de dados de entrada e de saída, como InputPath ou ResultPath em um estado, poderá visualizar os resultados intermediários e finais do processamento de dados.
Step Functions fornece os seguintes níveis para especificar os detalhes que você deseja visualizar:
Todos esses níveis também exibem os campos status
e nextState
. O status
indica o status da execução do estado. Por exemplo, SUCCEEDED
, FAILED
, RETRIABLE
e CAUGHT_ERROR
. nextState
indica o nome do próximo estado para o qual fazer a transição. Se você não definiu o próximo estado na definição, esse campo exibirá um valor vazio.
Para obter informações sobre como testar um estado usando esses níveis de inspeção no Step Functions console e AWS CLI, veja Testar um estado (console) Testando um estado usando AWS CLI e.
INFO inspectionLevel
Se o teste for bem-sucedido, esse nível mostrará a saída do estado. Se o teste falhar, esse nível mostrará a saída do erro. Por padrão, Step Functions define o nível de inspeção como INFOse você não especificar um nível.
A imagem a seguir mostra um teste bem-sucedido para um estado Aprovado. O nível de inspeção desse estado é definido como INFOe a saída do estado aparece na guia Saída.
A imagem a seguir mostra um teste que falhou em um estado de Tarefa quando o nível de inspeção está definido como INFO. A guia Saída mostra a saída do erro que inclui o nome e uma explicação detalhada da causa desse erro.
DEBUG inspectionLevel
Se o teste for bem-sucedido, esse nível mostrará a saída do estado e o resultado do processamento dos dados de entrada e de saída.
Se o teste falhar, esse nível mostrará a saída do erro. Esse nível mostra os resultados intermediários do processamento de dados até o ponto de falha. Por exemplo, digamos que você testou um estado de Tarefa que invoca um Lambda função. Imagine que você tenha aplicado os filtros InputPath, Parâmetros, Especificando a saída de estado usando fluxos de trabalho ResultPath do Step Functions e Filtrando a saída do estado usando fluxos de trabalho OutputPath do Step Functions ao estado de Tarefa. Digamos que a invocação tenha falhado. Nesse caso, o nível DEBUG
mostra os resultados do processamento de dados com base na aplicação dos filtros na seguinte ordem:
-
input
: entrada de estado bruto. -
afterInputPath
— Entrada após Step Functions aplica oInputPath
filtro. -
afterParameters
— A entrada efetiva após Step Functions aplica oParameters
filtro.
As informações de diagnóstico disponíveis nesse nível podem ajudar a solucionar problemas relacionados a uma integração de serviços ou ao fluxo de processamento de dados de entrada e de saída definido.
A imagem a seguir mostra um teste bem-sucedido para um estado Aprovado. O nível de inspeção para esse estado está definido como DEBUG. A guia Processamento de entrada/saída na imagem a seguir mostra o resultado da aplicação de Parameters na entrada fornecida para esse estado.
A imagem a seguir mostra um teste que falhou em um estado de Tarefa quando o nível de inspeção está definido como DEBUG. A guia Processamento de entrada/saída na imagem a seguir mostra o resultado do processamento de dados de entrada e de saída para o estado até o ponto da falha.
TRACE inspectionLevel
Step Functions fornece o TRACEnível para testar uma HTTPtarefa. Esse nível retorna informações sobre a HTTP solicitação que Step Functions faz e responde que um terceiro API retorna. A resposta pode conter informações, como cabeçalhos e corpo da solicitação. Além disso, é possível visualizar a saída do estado e o resultado do processamento de dados de entrada e de saída nesse nível.
Se o teste falhar, esse nível mostrará a saída do erro.
Esse nível é aplicável somente à HTTP Tarefa. Step Functions gerará um erro se você usar esse nível para outros tipos de estado.
Ao definir o nível de inspeção como TRACE, você também pode visualizar os segredos incluídos na EventBridge conexão. Para fazer isso, você deve definir o revealSecrets
parâmetro como true
no TestStateAPI. Além disso, você deve se certificar de que o IAM o usuário que chama o TestState API tem permissão para a states:RevealSecrets
ação. Para um exemplo de IAM política que define a states:RevealSecrets
permissão, consulteIAM permissões para usar TestState API. Sem essa permissão, Step Functions gera um erro de acesso negado.
Se você definir o revealSecrets
parâmetro false
como Step Functions omite todos os segredos nos dados de HTTP solicitação e resposta.
A imagem a seguir mostra um teste para uma HTTP tarefa que foi bem-sucedida. O nível de inspeção para esse estado está definido como TRACE. A guia HTTPSolicitação e Resposta na imagem a seguir mostra o resultado da API chamada de terceiros.
IAM permissões para usar TestState API
A ferramenta IAM o usuário que chama o TestState
API deve ter permissões para realizar as iam:PassRole
ações states:TestState
e. Além disso, se você definir o revealSecretsparâmetro comotrue
, deverá certificar-se de que o IAM o usuário tem permissões para realizar a states:RevealSecrets
ação. Sem essa permissão, Step Functions gera um erro de acesso negado.
Você também deve se certificar de que sua função de execução contenha as informações necessárias. IAM permissões para os recursos que seu estado está acessando. Para obter informações sobre as permissões necessárias a um estado, consulte Managing execution roles.
Os seguintes exemplos de IAM exemplo de política define as states:RevealSecrets
permissões states:TestState
iam:PassRole
, e.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:TestState", "states:RevealSecrets", "iam:PassRole" ], "Resource": "*" } ] }
Testar um estado (console)
É possível testar um estado no console e conferir a saída do estado ou o fluxo de processamento de dados de entrada e de saída. Para uma HTTPtarefa, você pode testar a HTTP solicitação e a resposta brutas.
Como testar um estado
-
Abra o console do Step Functions
. -
Selecione Criar uma máquina de estado para começar a criar uma máquina de estado ou escolha uma máquina de estado existente.
-
No Modo de design do Workflow Studio, selecione um estado que deseja testar.
-
Selecione Testar estado no painel Painel do Inspector do Workflow Studio.
-
Na caixa de diálogo Testar estado, faça o seguinte:
-
Em Perfil de execução, selecione um perfil de execução para testar o estado. Certifique-se de que você tenha o necessário IAM permissões para o estado que você deseja testar.
-
(Opcional) Forneça qualquer JSON entrada que o estado selecionado precise para o teste.
-
Em Nível de inspeção, selecione uma das seguintes opções com base nos valores que você deseja visualizar:
-
INFO— Mostra a saída do estado na guia Saída se o teste for bem-sucedido. Se o teste falhar, INFOmostra a saída do erro, que inclui o nome do erro e uma explicação detalhada da causa desse erro. Por padrão, Step Functions define o nível de inspeção como INFOse você não selecionar um nível.
-
DEBUG— Mostra a saída do estado e o resultado do processamento de dados de entrada e saída se o teste for bem-sucedido. Se o teste falhar, DEBUGmostra a saída do erro, que inclui o nome do erro e uma explicação detalhada da causa desse erro.
-
TRACE— Mostra a HTTP solicitação e a resposta brutas e é útil para verificar cabeçalhos, parâmetros de consulta e outros detalhes API específicos. Essa opção só está disponível para a HTTPtarefa.
Também é possível selecionar Revelar segredos. Em combinação com TRACE, essa configuração permite que você veja os dados confidenciais que o EventBridge inserções de conexão, como API chaves. A ferramenta IAM a identidade do usuário que você usa para acessar o console deve ter permissão para realizar a
states:RevealSecrets
ação. Sem essa permissão, Step Functions gera um erro de acesso negado quando você inicia o teste. Para um exemplo de IAM política que define astates:RevealSecrets
permissão, consulteIAM permissões para usar TestState API.
-
-
Selecione Iniciar teste.
-
Testando um estado usando AWS CLI
Você pode testar um estado suportado usando o TestStateAPIno AWS CLI. Isso API aceita a definição de um estado e a executa.
Para cada estado, é possível especificar a quantidade de detalhes que você deseja visualizar nos resultados do teste. Esses detalhes fornecem informações adicionais sobre a execução do estado, incluindo o resultado do processamento de dados de entrada e saída e as informações de HTTP solicitação e resposta. Os exemplos a seguir mostram os diferentes níveis de inspeção que você pode especificar para o. TestState API Lembre-se de substituir o italicized
texto com as informações específicas do seu recurso.
Esta seção contém os seguintes exemplos que descrevem como você pode usar os diferentes níveis de inspeção que Step Functions fornece no AWS CLI:
Exemplo 1: Usando INFO inspectionLevel para testar um estado de escolha
Para testar um estado usando o INFO
inspectionLevelin the AWS CLI, execute o test-state
comando conforme mostrado no exemplo a seguir.
aws stepfunctions test-state \ --definition '{"Type": "Choice", "Choices": [{"Variable": "$.number", "NumericEquals": 1, "Next": "Equals 1"}, {"Variable": "$.number", "NumericEquals": 2, "Next": "Equals 2"}], "Default": "No Match"}' \ --role-arn arn:aws:iam::
123456789012
:role/myRole
\ --input '{"number": 2}'
Este exemplo usa um estado de escolha para determinar o caminho de execução do estado com base na entrada numérica fornecida. Por padrão, Step Functions define o inspectionLevel
para INFO
se você não definir um nível.
Step Functions retorna a seguinte saída.
{
"output": "{\"number\": 2}",
"nextState": "Equals 2",
"status": "SUCCEEDED"
}
Exemplo 2: Usando DEBUG inspectionLevel para depurar o processamento de dados de entrada e saída em um estado Pass
Para testar um estado usando o DEBUG
inspectionLevelin the AWS CLI, execute o test-state
comando conforme mostrado no exemplo a seguir.
aws stepfunctions test-state \ --definition '{"Type": "Pass", "InputPath": "$.payload", "Parameters": {"data": 1}, "ResultPath": "$.result", "OutputPath": "$.result.data", "Next": "Another State"}' \ --role-arn arn:aws:iam::
123456789012
:role/myRole
\ --input '{"payload": {"foo": "bar"}}' \ --inspection-level DEBUG
Este exemplo usa um Passar estado do fluxo de trabalho estado para mostrar como Step Functions filtra e manipula os JSON dados de entrada usando os filtros de processamento de dados de entrada e saída. Este exemplo usa estes filtros: InputPath
, Parâmetros
, Especificando a saída de estado usando fluxos de trabalho ResultPath do Step Functions
e Filtrando a saída do estado usando fluxos de trabalho OutputPath do Step Functions
.
Step Functions retorna a seguinte saída.
{
"output": "1",
"inspectionData": {
"input": "{\"payload\": {\"foo\": \"bar\"}}",
"afterInputPath": "{\"foo\":\"bar\"}",
"afterParameters": "{\"data\":1}",
"afterResultSelector": "{\"data\":1}",
"afterResultPath": "{\"payload\":{\"foo\":\"bar\"},\"result\":{\"data\":1}}"
},
"nextState": "Another State",
"status": "SUCCEEDED"
}
Exemplo 3: Usar TRACE inspectionLevel e revealSecrets inspecionar a HTTP solicitação enviada a um terceiro API
Para testar uma HTTPtarefa usando o TRACE
inspectionLeveljunto com o revealSecretsparâmetro no AWS CLI, execute o test-state
comando conforme mostrado no exemplo a seguir.
aws stepfunctions test-state \
--definition '{"Type": "Task", "Resource": "arn:aws:states:::http:invoke", "Parameters": {"Method": "GET", "Authentication": {"ConnectionArn": "arn:aws:events:us-east-1:123456789012
:connection/MyConnection/0000000-0000-0000-0000-000000000000"
}, "ApiEndpoint": "https://httpbin.org/get", "Headers": {"definitionHeader": "h1"}, "RequestBody": {"message": "Hello from Step Functions!"}, "QueryParameters": {"queryParam": "q1"}}, "End": true}' \
--role-arn arn:aws:iam::123456789012
:role/myRole
\
--inspection-level TRACE \
--reveal-secrets
Este exemplo testa se a HTTP tarefa chama o terceiro especificadoAPI,https://httpbin.org/
. Também mostra os dados de HTTP solicitação e resposta da API chamada.
{
"output": "{\"Headers\":{\"date\":[\"Tue, 21 Nov 2023 00:06:17 GMT\"],\"access-control-allow-origin\":[\"*\"],\"content-length\":[\"620\"],\"server\":[\"gunicorn/19.9.0\"],\"access-control-allow-credentials\":[\"true\"],\"content-type\":[\"application/json\"]},\"ResponseBody\":{\"args\":{\"QueryParam1\":\"QueryParamValue1\",\"queryParam\":\"q1\"},\"headers\":{\"Authorization\":\"Basic XXXXXXXX\",\"Content-Type\":\"application/json; charset=UTF-8\",\"Customheader1\":\"CustomHeaderValue1\",\"Definitionheader\":\"h1\",\"Host\":\"httpbin.org\",\"Range\":\"bytes=0-262144\",\"Transfer-Encoding\":\"chunked\",\"User-Agent\":\"Amazon|StepFunctions|HttpInvoke|us-east-1\",\"X-Amzn-Trace-Id\":\"Root=1-0000000-0000-0000-0000-000000000000\"},\"origin\":\"12.34.567.891\",\"url\":\"https://httpbin.org/get?queryParam=q1&QueryParam1=QueryParamValue1\"},\"StatusCode\":200,\"StatusText\":\"OK\"}",
"inspectionData": {
"input": "{}",
"afterInputPath": "{}",
"afterParameters": "{\"Method\":\"GET\",\"Authentication\":{\"ConnectionArn\":\"arn:aws:events:us-east-1:123456789012
:connection/foo/a59c10f0-a315-4c1f-be6a-559b9a0c6250\"},\"ApiEndpoint\":\"https://httpbin.org/get\",\"Headers\":{\"definitionHeader\":\"h1\"},\"RequestBody\":{\"message\":\"Hello from Step Functions!\"},\"QueryParameters\":{\"queryParam\":\"q1\"}}",
"result": "{\"Headers\":{\"date\":[\"Tue, 21 Nov 2023 00:06:17 GMT\"],\"access-control-allow-origin\":[\"*\"],\"content-length\":[\"620\"],\"server\":[\"gunicorn/19.9.0\"],\"access-control-allow-credentials\":[\"true\"],\"content-type\":[\"application/json\"]},\"ResponseBody\":{\"args\":{\"QueryParam1\":\"QueryParamValue1\",\"queryParam\":\"q1\"},\"headers\":{\"Authorization\":\"Basic XXXXXXXX\",\"Content-Type\":\"application/json; charset=UTF-8\",\"Customheader1\":\"CustomHeaderValue1\",\"Definitionheader\":\"h1\",\"Host\":\"httpbin.org\",\"Range\":\"bytes=0-262144\",\"Transfer-Encoding\":\"chunked\",\"User-Agent\":\"Amazon|StepFunctions|HttpInvoke|us-east-1\",\"X-Amzn-Trace-Id\":\"Root=1-0000000-0000-0000-0000-000000000000\"},\"origin\":\"12.34.567.891\",\"url\":\"https://httpbin.org/get?queryParam=q1&QueryParam1=QueryParamValue1\"},\"StatusCode\":200,\"StatusText\":\"OK\"}",
"afterResultSelector": "{\"Headers\":{\"date\":[\"Tue, 21 Nov 2023 00:06:17 GMT\"],\"access-control-allow-origin\":[\"*\"],\"content-length\":[\"620\"],\"server\":[\"gunicorn/19.9.0\"],\"access-control-allow-credentials\":[\"true\"],\"content-type\":[\"application/json\"]},\"ResponseBody\":{\"args\":{\"QueryParam1\":\"QueryParamValue1\",\"queryParam\":\"q1\"},\"headers\":{\"Authorization\":\"Basic XXXXXXXX\",\"Content-Type\":\"application/json; charset=UTF-8\",\"Customheader1\":\"CustomHeaderValue1\",\"Definitionheader\":\"h1\",\"Host\":\"httpbin.org\",\"Range\":\"bytes=0-262144\",\"Transfer-Encoding\":\"chunked\",\"User-Agent\":\"Amazon|StepFunctions|HttpInvoke|us-east-1\",\"X-Amzn-Trace-Id\":\"Root=1-0000000-0000-0000-0000-000000000000\"},\"origin\":\"12.34.567.891\",\"url\":\"https://httpbin.org/get?queryParam=q1&QueryParam1=QueryParamValue1\"},\"StatusCode\":200,\"StatusText\":\"OK\"}",
"afterResultPath": "{\"Headers\":{\"date\":[\"Tue, 21 Nov 2023 00:06:17 GMT\"],\"access-control-allow-origin\":[\"*\"],\"content-length\":[\"620\"],\"server\":[\"gunicorn/19.9.0\"],\"access-control-allow-credentials\":[\"true\"],\"content-type\":[\"application/json\"]},\"ResponseBody\":{\"args\":{\"QueryParam1\":\"QueryParamValue1\",\"queryParam\":\"q1\"},\"headers\":{\"Authorization\":\"Basic XXXXXXXX\",\"Content-Type\":\"application/json; charset=UTF-8\",\"Customheader1\":\"CustomHeaderValue1\",\"Definitionheader\":\"h1\",\"Host\":\"httpbin.org\",\"Range\":\"bytes=0-262144\",\"Transfer-Encoding\":\"chunked\",\"User-Agent\":\"Amazon|StepFunctions|HttpInvoke|us-east-1\",\"X-Amzn-Trace-Id\":\"Root=1-0000000-0000-0000-0000-000000000000\"},\"origin\":\"12.34.567.891\",\"url\":\"https://httpbin.org/get?queryParam=q1&QueryParam1=QueryParamValue1\"},\"StatusCode\":200,\"StatusText\":\"OK\"}",
"request": {
"protocol": "https",
"method": "GET",
"url": "https://httpbin.org/get?queryParam=q1&QueryParam1=QueryParamValue1",
"headers": "[definitionHeader: h1, Authorization: Basic XXXXXXXX, CustomHeader1: CustomHeaderValue1, User-Agent: Amazon|StepFunctions|HttpInvoke|us-east-1, Range: bytes=0-262144]",
"body": "{\"message\":\"Hello from Step Functions!\",\"BodyKey1\":\"BodyValue1\"}"
},
"response": {
"protocol": "https",
"statusCode": "200",
"statusMessage": "OK",
"headers": "[date: Tue, 21 Nov 2023 00:06:17 GMT, content-type: application/json, content-length: 620, server: gunicorn/19.9.0, access-control-allow-origin: *, access-control-allow-credentials: true]",
"body": "{\n \"args\": {\n \"QueryParam1\": \"QueryParamValue1\", \n \"queryParam\": \"q1\"\n }, \n \"headers\": {\n \"Authorization\": \"Basic XXXXXXXX\", \n \"Content-Type\": \"application/json; charset=UTF-8\", \n \"Customheader1\": \"CustomHeaderValue1\", \n \"Definitionheader\": \"h1\", \n \"Host\": \"httpbin.org\", \n \"Range\": \"bytes=0-262144\", \n \"Transfer-Encoding\": \"chunked\", \n \"User-Agent\": \"Amazon|StepFunctions|HttpInvoke|us-east-1\", \n \"X-Amzn-Trace-Id\": \"Root=1-0000000-0000-0000-0000-000000000000\"\n }, \n \"origin\": \"12.34.567.891\", \n \"url\": \"https://httpbin.org/get?queryParam=q1&QueryParam1=QueryParamValue1\"\n}\n"
}
},
"status": "SUCCEEDED"
}
Exemplo 4: Usando o utilitário jq para filtrar e imprimir a resposta que retorna TestState API
O TestState API retorna JSON dados como sequências de caracteres de escape em sua resposta. Os seguintes exemplos de AWS CLI example estende o Exemplo 3 e usa o jq
utilitário para filtrar e imprimir a HTTP resposta que ele TestState API retorna em um formato legível por humanos. Para obter informações jq
e instruções de instalação, consulte jq
aws stepfunctions test-state \
--definition '{"Type": "Task", "Resource": "arn:aws:states:::http:invoke", "Parameters": {"Method": "GET", "Authentication": {"ConnectionArn": "arn:aws:events:us-east-1:123456789012
:connection/MyConnection/0000000-0000-0000-0000-000000000000"
}, "ApiEndpoint": "https://httpbin.org/get", "Headers": {"definitionHeader": "h1"}, "RequestBody": {"message": "Hello from Step Functions!"}, "QueryParameters": {"queryParam": "q1"}}, "End": true}' \
--role-arn arn:aws:iam::123456789012
:role/myRole
\
--inspection-level TRACE \
--reveal-secrets \
| jq '.inspectionData.response.body | fromjson'
O exemplo a seguir mostra a saída exibida em formato legível.
{
"args": {
"QueryParam1": "QueryParamValue1",
"queryParam": "q1"
},
"headers": {
"Authorization": "Basic XXXXXXXX",
"Content-Type": "application/json; charset=UTF-8",
"Customheader1": "CustomHeaderValue1",
"Definitionheader": "h1",
"Host": "httpbin.org",
"Range": "bytes=0-262144",
"Transfer-Encoding": "chunked",
"User-Agent": "Amazon|StepFunctions|HttpInvoke|us-east-1",
"X-Amzn-Trace-Id": "Root=1-0000000-0000-0000-0000-000000000000"
},
"origin": "12.34.567.891
",
"url": "https://httpbin.org/get?queryParam=q1&QueryParam1=QueryParamValue1
"
}
Testar e depurar o fluxo de dados de entrada e de saída.
Isso TestState
API é útil para testar e depurar os dados que fluem pelo seu fluxo de trabalho. Esta seção fornece alguns conceitos-chave e explica como usar o TestState para essa finalidade.
Principais conceitos
Em Step Functions, o processo de filtrar e manipular JSON dados à medida que eles passam pelos estados em sua máquina de estados é chamado de processamento de entrada e saída. Para obter informações sobre como isso funciona, consulte Processando entrada e saída em Step Functions.
Todos os tipos de estado em Amazon States Language (ASL) (Tarefa, Paralelo, Mapa, Aprovação, Esperar, Escolha, Sucesso e Falha) compartilham um conjunto de campos comuns para filtrar e manipular os JSON dados que passam por eles. Esses campos são: InputPath, Parâmetros, ResultSelector, Especificando a saída de estado usando fluxos de trabalho ResultPath do Step Functions e Filtrando a saída do estado usando fluxos de trabalho OutputPath do Step Functions. O suporte para cada campo varia de acordo com os estados
A lista a seguir descreve a ordem de aplicação dos campos de processamento de entrada e de saída mostrados no diagrama.
-
A entrada de estado JSON são os dados passados para o estado atual a partir de um estado anterior.
-
O InputPath filtra uma parte da entrada de estado bruto.
-
O Parâmetros configura o conjunto de valores a serem passados para a Tarefa.
-
A tarefa executa o trabalho e exibe um resultado.
-
O ResultSelector seleciona um conjunto de valores a ser excluído do resultado da tarefa.
-
O Especificando a saída de estado usando fluxos de trabalho ResultPath do Step Functions combina o resultado com a entrada de estado bruto ou substitui o resultado por ela.
-
O Filtrando a saída do estado usando fluxos de trabalho OutputPath do Step Functions filtra uma parte da saída para passar para o próximo estado.
-
A saída de estado JSON são os dados passados do estado atual para o próximo estado.
Esses campos de processamento de entrada e de saída são opcionais. Se você não usar nenhum desses campos na definição do estado, a tarefa consumirá a entrada do estado bruto e exibirá o resultado da tarefa como a saída do estado.
Usando TestState para inspecionar o processamento de entrada e saída
Quando você chama TestState
API e define o inspectionLevel
parâmetro comoDEBUG
, a API resposta inclui um objeto chamadoinspectionData
. Esse objeto contém campos para ajudar a inspecionar como os dados foram filtrados ou manipulados no estado durante a execução. O exemplo a seguir mostra o objeto inspectionData
para o estado de Tarefa.
"inspectionData": {
"input": string,
"afterInputPath": string,
"afterParameters": string,
"result": string,
"afterResultSelector": string,
"afterResultPath": string,
"output": string
}
Neste exemplo, cada campo que contém o prefixo after
mostra os dados após a aplicação de um campo específico. Por exemplo, afterInputPath
mostra o efeito da aplicação do campo InputPath
para filtrar a entrada de estado bruto. O diagrama a seguir mapeia cada campo de ASLdefinição para seu campo correspondente no inspectionData
objeto:
Para exemplos de uso do TestState API para depurar o processamento de entrada e saída, consulte o seguinte: