Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Saiba mais sobre máquinas de estado no Step Functions.

Modo de foco
Saiba mais sobre máquinas de estado no Step Functions. - AWS Step Functions

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á.

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.)

Exemplo ilustrativo dos componentes de um fluxo de trabalho do Step Functions.

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 StartAtTimeoutSeconds, como, Version e.

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
  • AWS SDKintegrações — Forma padrão de chamar qualquer uma das mais de duzentas Serviços da AWS e mais de nove mil API ações diretamente de sua máquina de estado.

  • Integrações otimizadas: integrações personalizadas que simplificam as chamadas e a troca de dados com determinados serviços. Por exemplo, o Lambda Invoke converterá automaticamente o Payload campo da resposta de uma JSON string de escape em um objeto. JSON

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 Functions. Os dados iniciais são passados para o estado StartAt 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.

  1. 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 }); }
  2. 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 } } }
  3. 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:

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 estado start é definido pelo valor do campo StartAt 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:

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.