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á.
O Step Functions é baseado em máquinas de estado, que também são chamadas de fluxos de trabalho. Os fluxos de trabalho são compostos por uma série de etapas orientadas por eventos.
Você define um fluxo de trabalho usando a Amazon States Language, também conhecida comoASL. Opcionalmente, você pode usar o Workflow Studio, um designer visual de fluxo de trabalho, para criar e editar seus fluxos de trabalho.
Cada etapa no fluxo de trabalho é chamada de estado. Há dois tipos de estados: estados de fluxo e estados de tarefa:
- Estados de fluxo
-
Os estados de fluxo controlam o fluxo de execução das etapas. Por exemplo, os estados de escolha fornecem lógica condicional; os estados de espera pausam a execução do fluxo de trabalho; os estados de mapa executam fluxos de trabalho secundários para cada item em um conjunto de dados; e os estados paralelos criam ramificações separadas em seus fluxos de trabalho.
- Estados da tarefa
-
Os estados da tarefa representam uma unidade de trabalho que outro AWS serviço executa, como ligar para outro AWS service (Serviço da AWS) ouAPI. Os estados das tarefas também são conhecidos como Ações. Você pode escolher centenas de ações para realizar trabalhos em serviços externos AWS e internos. (Observação: você também pode usar trabalhadores que são executados fora do Step Functions para realizar tarefas. Para obter mais informações, consulteAtividades.)

Execuções e erros de tratamento
Quando você executa seus fluxos de trabalho, o Step Functions cria uma instância de fluxo de trabalho chamada execução. Você pode monitorar o status das execuções do seu fluxo de trabalho. Se uma execução apresentar um erro, o fluxo de trabalho poderá detectar o erro. Dependendo do seu caso de uso, você pode reconduzir a execução posteriormente para retomar o fluxo de trabalho.
Passando dados
Opcionalmente, você pode fornecer dados de entrada na forma de JSON texto para seus fluxos de trabalho. Cada etapa pode passar dados para as etapas subsequentes usando variáveis e saída de estado. Os dados armazenados em variáveis podem ser usados em etapas posteriores. A saída do estado se torna a entrada para a próxima etapa. Para saber mais sobre a transmissão de dados, consultePassando dados entre estados com variáveis.
No final dos fluxos de trabalho, sua máquina de estado pode, opcionalmente, produzir resultados, também na forma de. JSON
Transformando dados
Estados e máquinas de estado podem transformar dados usando uma linguagem de consulta. A linguagem de consulta recomendada é, no entanto JSONata, máquinas de estado criadas antes do uso do re:Invent 2024. JSONPath Para compatibilidade com versões anteriores, suas máquinas de estado ou estados individuais devem optar JSONata por usar sua linguagem de consulta.
Você pode reconhecer máquinas de JSONata estado e estados individuais pelo QueryLanguage
campo definido como "JSONata”. Máquinas estatais e estados que usamJSONPath, carecem do QueryLanguage
campo.
Os estados usados JSONPath terão campos de estado como InputPath, Parâmetros ResultSelector ResultPath,, OutputPath e. Nas definições de máquina de JSONPath estado, você também verá nomes de campo que terminam em .$
e valores prefixados com $.
e$$.
, ambos representando caminhos. Nos caminhos, você pode ver várias funções intrínsecas, como. States.MathAdd
As funções intrínsecas são usadas somente em. JSONPath
JSONataos estados usam os campos Argumentos e Saída. Nesses campos opcionais, você pode ver JSONata expressões parecidas com as seguintes:"{% $type = 'local' %}"
. ComJSONata, você pode usar expressões, operadores e funções. Para saber mais, consulte Transformando dados com Step JSONata Functions.
nota
Você pode usar somente uma linguagem de consulta por estado. Você não pode misturar JSONPath e JSONata em uma única etapa.
Principais conceitos
A seguir, apresentamos uma visão geral dos principais termos de contexto do Step Functions.
Prazo | Descrição |
---|---|
Fluxo de trabalho | Uma sequência de etapas que geralmente reflete um processo de negócios. |
Estados |
As etapas individuais da máquina de estado que podem tomar decisões com base nos dados de entrada, realizar ações com base nesses dados e transmitir os dados de saída para outros estados. Para obter mais informações, consulte Descobrir estados de fluxo de trabalho a serem usados no Step Functions. |
Workflow Studio |
Um designer de fluxo de trabalho visual que ajuda você a criar protótipos e criar fluxos de trabalho com mais rapidez. Para obter mais informações, consulte Desenvolver fluxos de trabalho no Workflow Studio do Step Functions. |
Máquina de estado | Um fluxo de trabalho definido usando JSON texto representando os estados ou etapas individuais no fluxo de trabalho junto com campos Para obter mais informações, consulte Estrutura da máquina de estado na Amazon States Language para fluxos de trabalho do Step Functions. |
Amazon States Language |
Uma linguagem estruturada e JSON baseada usada para definir suas máquinas de estado. ComASL, você define uma coleção de estados que podem funcionar (Taskestado), determina quais estados fazer a transição para o próximo (Choiceestado) e interrompe uma execução com um erro (Failestado). Para obter mais informações, consulte Usar a Amazon States Language para definir fluxos de trabalho do Step Functions. |
Configuração de entrada e saída |
Os estados em um fluxo de trabalho recebem JSON dados como entrada e geralmente passam JSON dados como saída para o próximo estado. O Step Functions oferece filtros para controlar o fluxo de dados entre os estados. Para obter mais informações, consulte Processar entrada e saída no Step Functions. |
Integração de serviços |
Você pode chamar API ações AWS de serviço a partir do seu fluxo de trabalho. Para obter mais informações, consulte Integrar serviços ao Step Functions. |
Tipo de integração de serviços |
|
Padrão de integração de serviço | Ao chamar um AWS service (Serviço da AWS), você usa um dos seguintes padrões de integração de serviços:
|
Execução |
As execuções de máquinas de estado são instâncias em que o fluxo de trabalho é executado para a realização de tarefas. Para obter mais informações, consulte Iniciar as execuções de uma máquina de estado no Step Functions. |
Dados da máquina de estado
Os dados da máquina de estado assumem as seguintes formas:
-
A entrada inicial em uma máquina de estado
-
Os dados passados entre estados
-
A saída de uma máquina de estado
Esta seção descreve como os dados de uma máquina de estado são formatados e usados no AWS Step Functions.
Formatos de dados
Os dados da máquina de estado são representados por JSON texto. Você pode fornecer valores para uma máquina de estado usando qualquer tipo de dados suportado peloJSON.
nota
-
Os números em formato JSON de texto estão em conformidade com a JavaScript semântica. Esses números normalmente correspondem a valores de precisão dupla de IEEE-854
. -
O JSON texto a seguir é válido:
-
Cadeias de caracteres autônomas, delimitadas por aspas
-
Objetos
-
Matrizes
-
Números
-
Valores boolianos
-
null
-
-
A saída de um estado se torna a entrada do estado seguinte. No entanto, você pode restringir os estados para que trabalhem em um subconjunto de dados de entrada usando o Processamento de entrada e saída.
Entrada/saída de máquina de estado
Você pode fornecer seus dados de entrada iniciais para uma máquina de AWS Step Functions estado de duas maneiras. Você pode passar os dados para uma ação StartExecution
ao iniciar uma execução. Você também pode passar os dados para a máquina de estado do console do Step FunctionsStartAt
da máquina de estado. Se não for fornecida nenhuma entrada, o padrão será um objeto vazio ({}
).
O resultado da execução é retornado pelo último estado (terminal
). Essa saída aparece como JSON texto no resultado da execução.
Para fluxos de trabalho padrão, você pode recuperar os resultados de execução do histórico usando chamadores externos, por exemplo, na ação DescribeExecution
. Você pode visualizar os resultados da execução no console do Step Functions
Para fluxos de trabalho expressos, se você habilitou o registro em log, poderá recuperar os resultados dos CloudWatch Logs ou visualizar e depurar as execuções no console Step Functions. Para ter mais informações, consulte Usando CloudWatch Logs para registrar o histórico de execução em Step Functions e Visualizar os detalhes da execução no console do Step Functions.
Você também deve considerar cotas relacionadas à sua máquina de estado. Para ter mais informações, consulte Cotas de serviço do Step Functions
Entrada/saída de estado
A entrada de cada estado consiste em JSON texto do estado anterior ou, para o StartAt
estado, na entrada na execução. Em alguns estados de controle de fluxo, a entrada ecoa a saída.
No exemplo a seguir, a máquina de estado adiciona dois números ao mesmo tempo.
-
Defina a AWS Lambda função.
function Add(input) { var numbers = JSON.parse(input).numbers; var total = numbers.reduce( function(previousValue, currentValue, index, array) { return previousValue + currentValue; }); return JSON.stringify({ result: total }); }
-
Defina a máquina de estado .
{ "Comment": "An example that adds two numbers together.", "StartAt": "Add", "Version": "1.0", "TimeoutSeconds": 10, "States": { "Add": { "Type": "Task", "Resource": "arn:aws:lambda:us-east-1:123456789012:function:Add", "End": true } } }
-
Inicie uma execução com o JSON texto a seguir.
{ "numbers": [3, 4] }
O
Add
estado recebe o JSON texto e o passa para a função Lambda.A função do Lambda retorna o resultado do cálculo para o estado.
O estado retorna o valor a seguir em sua saída.
{ "result": 7 }
Como
Add
é também o estado final na máquina de estado, esse valor é retornado como a saída da máquina de estado.Se o estado final não retornar nenhuma saída, a máquina de estado retornará um objeto vazio (
{}
).
Para obter mais informações, consulte Processar entrada e saída no Step Functions.
Invocar AWS Step Functions de outros serviços
Você pode configurar vários outros serviços para invocar máquinas de estado. Com base no tipo de fluxo de trabalho da máquina de estado, você pode invocar máquinas de estado de forma assíncrona ou síncrona. Para invocar máquinas de estado de forma síncrona, use a StartSyncExecution
API chamada ou a integração do Amazon API Gateway com o Express Workflows. Com a invocação assíncrona, o Step Functions pausa a execução do fluxo de trabalho até que um token de tarefa seja retornado. No entanto, a espera por um token de tarefa torna o fluxo de trabalho síncrono.
Os serviços que você pode configurar para invocar o Step Functions incluem:
-
AWS Lambda, usando a chamada
StartExecution
.
As invocações do Step Functions são governadas pela cota StartExecution
. Para obter mais informações, consulte:
Transições em máquinas de estado
Ao iniciar uma nova execução da máquina de estado, o sistema começa com o estado mencionado no campo de nível superior StartAt
. Esse campo, uma string. deve corresponder exatamente, inclusive em maiúsculas e minúsculas, ao nome de um estado no fluxo de trabalho.
Depois que um estado é executado, AWS Step Functions usa o valor do Next
campo para determinar o próximo estado para o qual avançar.
Os campos Next
também especificam nomes de estados como strings. Essa string diferencia maiúsculas de minúsculas e deve corresponder exatamente ao nome do estado especificado na descrição da máquina de estado.
Por exemplo, o estado a seguir inclui uma transição para NextState
.
"SomeState" : {
...,
"Next" : "NextState"
}
A maioria dos estados permite somente uma regra de transição com o campo Next
. No entanto, determinados estados de controle de fluxo, por exemplo, um estado Choice
, permitem que você especifique várias regras de transição, cada uma com o próprio campo Next
. A Amazon States Language fornece detalhes sobre cada um dos tipos de estado que você pode especificar, bem como informações sobre como especificar transições.
Os estados podem ter várias transições de entrada de outros estados.
Esse processo se repete até alcançar um estado terminal (um estado com "Type":
Succeed
, "Type": Fail
ou "End": true
) ou até que ocorra um erro de runtime.
Quando você redriveuma execução, é considerada uma transição de estado. Além disso, todos os estados que são executados novamente em um redrive também são consideradas transições de estado.
As regras a seguir aplicam-se a estados dentro de uma máquina de estado:
-
Os estados podem ocorrer em qualquer ordem no bloco delimitador. No entanto, a ordem em que eles estão listados não afeta a ordem em que estão sendo executados. Essa ordem é determinada pelo conteúdo dos estados.
-
Em uma máquina de estado, só pode haver um estado designado como o estado
start
. O estadostart
é definido pelo valor do campoStartAt
na estrutura de nível superior. -
Dependendo da lógica da máquina de estado, por exemplo, se a máquina de estado tiver várias ramificações lógicas, você pode ter mais de um estado
end
. -
Se a máquina de estado tiver somente um estado, esse estado poderá ser início ou fim.
Transições no estado Mapa Distribuído
Ao usar o estado Map
no modo distribuído, será cobrada uma transição de estado para cada execução de fluxo de trabalho secundária iniciada pelo estado Mapa distribuído. Quando você usa o estado Map
no modo em linha, não é cobrada uma transição de estado para cada iteração do estado Mapa inline.
Você pode otimizar o custo usando o estado Map
no modo distribuído e incluir um fluxo de trabalho aninhado na definição do estado Map
. O estado Mapa Distribuído também agrega mais valor ao iniciar execuções de fluxo de trabalho secundárias do tipo Express. O Step Functions armazena a resposta e o status das execuções do fluxo de trabalho secundário do Express, o que reduz a necessidade de armazenar dados de execução em CloudWatch registros. Você também pode obter acesso aos controles de fluxo disponíveis com um estado Mapa Distribuído, como definir limites de erro ou agrupar um grupo de itens em lotes. Para obter informações sobre a definição de preço do Step Functions, consulte Definição de preço para o AWS Step Functions
Consistência de leitura no Step Functions
Eventualmente, as atualizações da máquina de estado AWS Step Functions são consistentes. Todas as StartExecution
chamadas em alguns segundos usarão a definição atualizada e roleArn
(o nome de recurso da Amazon para a IAM função). Execuções que iniciarem imediatamente após a chamada de UpdateStateMachine
podem usar a definição de máquina de estado anterior e roleArn
.
Para obter mais informações, consulte:
-
UpdateStateMachine
na AWS Step Functions APIReferência