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á.
Estrutura da máquina de estado na Amazon States Language para fluxos de trabalho do Step Functions
Gerenciar estados e transformar dados
Saiba mais sobre como transmitir dados entre estados com variáveis e transformar dados com JSONata.
As máquinas de estado são definidas por meio de um texto JSON que representa uma estrutura que contém os campos a seguir.
-
Comment(opcional) -
Uma descrição humanamente legível da máquina de estado.
-
QueryLanguage(opcional; quando omitido, o padrão éJSONPath) -
-
O nome da linguagem de consulta usada pela máquina de estado. Os valores permitidos são
JSONPatheJSONata. -
Se não for fornecido para a máquina de estado, o valor padrão para cada estado será JSONPath.
-
Quando a linguagem de consulta da máquina de estado de nível superior é
JSONPath, estados individuais podem substituir a linguagem de consulta definindo QueryLanguage comoJSONata. Com essa abordagem, você pode converter de forma incremental uma máquina de estado de JSONPath para JSONata, um estado por vez. -
Observação: não é possível reverter uma máquina de estado de nível superior baseada em JSONata para uma combinação de estados JSONata e JSONPath.
-
-
StartAt(obrigatório) -
Uma string que deve corresponder exatamente (faz distinção de maiúsculas e minúsculas) ao nome de um dos objetos de estado.
-
TimeoutSeconds(Opcional) -
O número máximo de segundos que uma execução da máquina de estado pode durar. Se a execução durar mais do que o tempo especificado, ela falhará com um
States.TimeoutNome de erro. -
Version(opcional) -
A versão da Amazon States Language usada na máquina de estado (o padrão é "1.0").
-
States(obrigatório) -
Um objeto que contém um conjunto de estados separados por vírgula.
O campo States contém estados.
{
"State1" : {
},
"State2" : {
},
...
}A máquina de estado é definida pelos estados que ela contém e pelos relacionamentos entre eles.
Veja um exemplo a seguir.
{
"Comment": "A Hello World example of the Amazon States Language using a Pass state",
"StartAt": "HelloWorld",
"States": {
"HelloWorld": {
"Type": "Pass",
"Result": "Hello World!",
"End": true
}
}
}Quando uma execução dessa máquina de estado é iniciada, o sistema começa com o estado mencionado no campo StartAt ("HelloWorld"). Se esse estado tiver um campo "End": true, a execução será interrompida e retornará um resultado. Do contrário, o sistema procurará um campo "Next": e passará para o estado seguinte. Esse processo é repetido até que o sistema alcance um estado final (um estado com "Type": "Succeed", "Type": "Fail" ou "End": true) ou até que ocorra um erro de tempo de execução.
As regras a seguir aplicam-se a estados dentro de uma máquina de estado:
-
Os estados podem ocorrer em qualquer ordem dentro do bloco delimitador, mas a ordem na qual eles são listados não afeta a ordem na qual eles são executados. O conteúdo dos estados determina essa ordem.
-
Dentro de uma máquina de estado, pode haver somente um estado designado como estado
start, que é indicado pelo valor do campoStartAtna estrutura de nível superior. Esse é o primeiro estado executado quando a execução se inicia. -
Qualquer estado para o qual o campo
Endsejatrueé considerado um estadoend(outerminal). Dependendo da lógica da máquina de estado (por exemplo, se sua máquina de estado tiver várias ramificações de execução), você pode ter mais de um estadoend. -
Se sua máquina de estado tiver somente um estado, esse estado poderá ser
startouend.
Campos de estado comuns em fluxos de trabalho
Os campos a seguir são comuns a todos os elementos do estado.
-
Type(obrigatório) -
O tipo de estado: tarefa, escolha, paralelo, mapa, passagem, espera, sucesso, falha.
QueryLanguage(opcional; quando omitido, o padrão éJSONPath)-
-
O nome da linguagem de consulta usada pelo estado. Os valores permitidos são
JSONPatheJSONata. -
Quando a linguagem de consulta da máquina de estado de nível superior é
JSONPath, estados individuais podem substituir a linguagem de consulta definindo QueryLanguage comoJSONata. Com essa abordagem, você pode converter de forma incremental uma máquina de estado de JSONPath para JSONata, um estado por vez.
-
-
Next -
O nome do próximo estado que será executado quando o estado atual for concluído. Alguns tipos de estado, como
Choice, permitem vários estados de transição.Se o estado atual for o último estado no fluxo de trabalho ou um estado terminal, como Estado de sucesso do fluxo de trabalho ou Estado de falha do fluxo de trabalho, não será necessário especificar o campo
Next. -
End -
Designa o estado como um estado terminal (encerra a execução) caso seja definido como
true. Pode haver qualquer quantidade de estados finais por máquina de estado. Apenas umNextouEndpode ser usado em um estado. Alguns tipos de estado, comoChoice, ou estados terminais, como Estado de sucesso do fluxo de trabalho eEstado de falha do fluxo de trabalho, não são compatíveis nem usam o campoEnd. -
Comment(opcional) -
Apresenta uma descrição humanamente legível da máquina de estado.
-
Assign(opcional) -
Usado para armazenar variáveis. O campo
Assignaceita um objeto JSON com pares de chave/valor que definem nomes de variáveis e seus valores atribuídos. Qualquer valor de string, incluindo aqueles em objetos ou matrizes, será avaliado como JSONata se estiver entre caracteres{% %}Para obter mais informações, consulte Transmitir dados entre estados com variáveis.
-
Output(opcional, somente JSONata) -
Usado para especificar e transformar a saída do estado. Quando especificado, o valor substitui o padrão de saída de estado.
O campo de saída aceita qualquer valor JSON (objeto, matriz, string, número, booleano, nulo). Qualquer valor de string, incluindo aqueles em objetos ou matrizes, será avaliado como JSONata se estiver entre caracteres {% %}.
A saída também aceita uma expressão JSONata direta, por exemplo: “Output”: “{% jsonata expression %}”
Para obter mais informações, consulte Processamento de entrada e saída.
-
InputPath(opcional, somente JSONPath) -
Um caminho que seleciona uma parte da entrada do estado a ser passada para a tarefa do estado para processamento. Se omitido, terá o valor
$, que designa a entrada completa. Para obter mais informações, consulte Processamento de entrada e saída. -
OutputPath(opcional, somente JSONPath) -
Um caminho que seleciona uma parte da saída do estado a ser transmitida para o próximo estado. Se omitido, terá o valor
$, que designa a saída completa. Para obter mais informações, consulte Processamento de entrada e saída.