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
As máquinas de estado são definidas usando JSON texto que representa uma estrutura contendo os seguintes campos.
-
Comment
(opcional) -
Uma descrição humanamente legível da máquina de estado.
-
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.Timeout
Nome 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 campoStartAt
na estrutura de nível superior. Esse é o primeiro estado executado quando a execução se inicia. -
Qualquer estado para o qual o campo
End
sejatrue
é 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
start
ouend
.
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.
-
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 bem-sucedido 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 umNext
ouEnd
pode ser usado em um estado. Alguns tipos de estado, comoChoice
, ou estados terminais, como Estado bem-sucedido 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.
-
InputPath
(opcional) -
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) -
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.