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 a TestState API para testar um estado em Step Functions
A TestStateAPI aceita 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 a 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
-
A solicitação e a resposta de uma tarefa HTTP.
Para testar um estado, também é possível usar o console do Step Functions, a AWS Command Line Interface (AWS CLI) ou o SDK.
A API TestState
assume um perfil do IAM que deve conter as permissões do IAM necessárias para os recursos acessados pelo estado. Para obter informações sobre as permissões necessárias a um estado, consulte IAMpermissões para usar a TestState API.
Tópicos
Considerações sobre o uso da API TestState
Usando a TestStateAPI, você pode testar somente um estado por vez. Os estados que você pode testar incluem os seguintes:
Ao usar a API TestState
, tenha em mente as considerações a seguir.
-
A TestState API não inclui suporte para o seguinte:
-
Estados Estado de tarefa do fluxo de trabalho 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 na TestState API
Para testar um estado usando a 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.
O Step Functions oferece os seguintes níveis para especificar os detalhes a serem visualizados:
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 console do Step Functions e na AWS CLI, consulte Testar um estado (console) e Testar um estado usando a AWS CLI.
Nível de inspeção INFO
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, o Step Functions define o Nível de inspeção como INFO se 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 INFO e a saída do estado é exibida 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.

Nível de inspeção DEBUG
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 invoque uma função do Lambda. Imagine que você tenha aplicado os filtros InputPath, Parâmetros, Especificando a saída de estado usando ResultPath em Step Functions e Filtrando a saída do estado usando OutputPath 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 o Step Functions aplicar o filtroInputPath
. -
afterParameters
: a entrada efetiva após o Step Functions aplicar o filtroParameters
.
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 é 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.

Nível de inspeção TRACE
O Step Functions oferece o nível TRACE para testar uma tarefa HTTP. Esse nível retorna informações sobre a solicitação HTTP que Step Functions faz e a resposta que uma API HTTPS 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 para tarefas HTTP. O Step Functions vai 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
na TestStateAPI. Além disso, você deve garantir que o IAM usuário que chama a TestState API tenha permissão para a states:RevealSecrets
ação. Para ver um exemplo de política do IAM que concede a permissão states:RevealSecrets
, consulte IAMpermissões para usar a TestState API. Sem essa permissão, o Step Functions gera um erro de acesso negado.
Se você definir o parâmetro revealSecrets
como false
, o Step Functions omitirá todos os segredos nos dados de solicitação e resposta HTTP.
A imagem a seguir mostra um teste bem-sucedido para uma tarefa HTTP. O Nível de inspeção para esse estado é definido como TRACE. A guia Solicitação e resposta HTTP na imagem a seguir mostra o resultado da chamada da API HTTPS.

IAMpermissões para usar a TestState API
O usuário do IAM que chama a API TestState
deve ter permissões para realizar as ações states:TestState
e iam:PassRole
. Além disso, se você definir o parâmetro revealSecrets como true
, deverá garantir que o usuário do IAM tenha permissões para realizar a ação states:RevealSecrets
. Sem essa permissão, o Step Functions gera um erro de acesso negado.
Também é necessário garantir que o perfil de execução contenha as permissões do IAM necessárias para os recursos que o estado está acessando. Para obter informações sobre as permissões necessárias a um estado, consulte Managing execution roles.
O exemplo de política do IAM a seguir define as permissões states:TestState
, iam:PassRole
e states:RevealSecrets
.
{ "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 tarefa HTTP, é possível testar a solicitação e a resposta HTTP 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 Inspetor 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. Tenha as permissões do IAM necessárias para o estado que deseja testar.
-
(Opcional) Forneça todas as entradas JSON de 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: mostrará a saída do estado na guia Saída se o teste for bem-sucedido. Se o teste falhar, INFO mostrará a saída do erro que inclui o nome e uma explicação detalhada da causa desse erro. Por padrão, o Step Functions definirá o Nível de inspeção como INFO se você não especificar um nível.
-
DEBUG: mostrará a saída do estado e o resultado do processamento dos dados de entrada e de saída se o teste for bem-sucedido. Se o teste falhar, DEBUG mostrará a saída do erro que inclui o nome e uma explicação detalhada da causa desse erro.
-
TRACE: mostra a solicitação e a resposta HTTP brutas e é útil para verificar cabeçalhos, parâmetros de consulta e outros detalhes específicos da API. Essa opção só está disponível para a tarefa HTTP.
Também é possível selecionar Revelar segredos. Em combinação com TRACE, essa configuração permite que você veja os dados confidenciais que a conexão com o EventBridge insere, como chaves de API. A identidade do usuário do IAM que você usa para acessar o console deve ter permissão para realizar a ação
states:RevealSecrets
. Sem essa permissão, o Step Functions gera um erro de acesso negado ao iniciar o teste. Para ver um exemplo de política do IAM que concede essas permissõesstates:RevealSecrets
, consulte IAMpermissões para usar a TestState API.
-
-
Selecione Iniciar teste.
-
Testar um estado usando a AWS CLI
Você pode testar um estado compatível usando a TestStateAPI noAWS CLI. A 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 de saída e as informações de solicitação e resposta HTTP. Os exemplos a seguir mostram os diferentes níveis de inspeção que você pode especificar para a TestState API. Lembre-se de substituir o italicized
texto pelas informações específicas do seu recurso.
Esta seção contém os seguintes exemplos que descrevem como usar os diferentes níveis de inspeção fornecidos pelo Step Functions na AWS CLI:
Exemplo 1: Usar o nível de inspeção INFO para testar um estado de escolha
Para testar um estado usando o INFO
InspectionLevel no 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::
account-id
: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, o Step Functions definirá o inspectionLevel
como INFO
se você não definir um nível.
O Step Functions exibe a saída a seguir.
{
"output": "{\"number\": 2}",
"nextState": "Equals 2",
"status": "SUCCEEDED"
}
Exemplo 2: Usar o Nível de inspeção DEBUG para depurar o processamento de dados de entrada e de saída em um estado Aprovado
Para testar um estado usando o DEBUG
InspectionLevel no 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::
account-id
:role/myRole
\ --input '{"payload": {"foo": "bar"}}' \ --inspection-level DEBUG
Este exemplo usa um estado Estado de passagem do fluxo de trabalho para mostrar como o Step Functions filtra e manipula os dados JSON de entrada usando os filtros de processamento de dados de entrada e de saída. Este exemplo usa estes filtros: InputPath
, Parâmetros
, Especificando a saída de estado usando ResultPath em Step Functions
e Filtrando a saída do estado usando OutputPath
.
O Step Functions exibe a saída a seguir.
{
"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: Usando TRACE InspectionLevel e RevealSecrets para inspecionar a solicitação HTTP enviada para uma API HTTPS
Para testar uma tarefa HTTP usando o TRACE
InspectionLevel junto com o parâmetro revealSecrets 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:region
:account-id
: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::account-id
:role/myRole
\
--inspection-level TRACE \
--reveal-secrets
Este exemplo testa se a tarefa HTTP chama a API HTTPS especificada,https://httpbin.org/
. Ele também mostra os dados de solicitação e resposta HTTP para a chamada de API.
{
"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|region
\",\"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:region
:account-id
: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|region
\",\"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|region
\",\"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|region
\",\"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|region
, 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|region
\", \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 a TestState API retorna
A TestState API retorna dados JSON como sequências de caracteres de escape em sua resposta. O AWS CLI exemplo a seguir estende o Exemplo 3 e usa o jq
utilitário para filtrar e imprimir a resposta HTTP que a 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:region
:account-id
: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::account-id
: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|region
",
"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.
A API TestState
é útil para testar e depurar os dados que fluem pelo fluxo de trabalho. Esta seção fornece alguns conceitos-chave e explica como usar o TestState para essa finalidade.
Principais conceitos
No Step Functions, o processo de filtrar e manipular dados JSON à medida que eles passam pelos estados na máquina de estado é chamado de processamento de entrada e de saída. Para obter informações sobre como isso funciona, consulte Processar entrada e saída no Step Functions.
Todos os tipos de estado no Amazon States Language (ASL) (Tarefa, Paralelo, Mapa, Aprovar, Aguardar, Escolha, Êxito e Falha) compartilham um conjunto de campos comuns para filtrar e manipular os dados JSON que passam por eles. Esses campos são: InputPath, Parâmetros, ResultSelector, Especificando a saída de estado usando ResultPath em Step Functions e Filtrando a saída do estado usando OutputPath. 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 são os dados JSON transmitidos 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 ResultPath em 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 OutputPath filtra uma parte da saída para passar para o próximo estado.
-
A entrada de estado são os dados JSON transmitidos 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
Ao chamar a API TestState
e definir o parâmetro inspectionLevel
como DEBUG
, a resposta da API incluirá um objeto chamado inspectionData
. 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 associa cada campo Definição de ASL ao campo correspondente no objeto inspectionData
:

Para exemplos de uso da TestState API para depurar o processamento de entrada e saída, consulte o seguinte: