O que AWS 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á.

O que AWS Step Functionsé

AWS Step Functions é um serviço de orquestração sem servidor que permite a integração com AWS Lambdafunções e outras Serviços da AWS para criar aplicativos essenciais para os negócios. Por meio do console gráfico do Step Functions, você vê o fluxo de trabalho do aplicativo como uma série de etapas baseadas em eventos.

O Step Functions é baseado em máquinas de estado e tarefas. Em Step Functions, um fluxo de trabalho é chamado de máquina de estado, que é uma série de etapas orientadas por eventos. Cada etapa no fluxo de trabalho é chamada de estado. Um Tarefa estado representa uma unidade de trabalho que outro AWS serviço, como AWS Lambda, executa. Um estado de tarefa pode chamar AWS service (Serviço da AWS) qualquer API.

Com os controles integrados do Step Functions, você examina o estado de cada etapa no fluxo de trabalho para garantir que o aplicativo seja executado em ordem e conforme o esperado. Dependendo do seu caso de uso, você pode fazer com que os AWS serviços de chamadas do Step Functions, como o Lambda, executem tarefas. Você pode criar fluxos de trabalho que processam e publicam modelos de machine learning. Você pode ter AWS serviços de controle do Step Functions AWS Glue, como criar fluxos de trabalho de extração, transformação e carregamento (ETL). Além disso, você tem a capacidade de criar fluxos de trabalho automatizados e de longa duração para aplicativos que exigem interação humana.

dica

Para se familiarizar com os principais recursos do Step Functions por meio de uma série de módulos interativos, consulte The AWS Step Functions Workshop. Ou comece a usar o Step Functions seguindo os tutoriais de introdução para criar um fluxo de trabalho para aplicativo de cartão de crédito.

AWS SDK e integrações otimizadas

Para ligar para outros AWS serviços, você pode usar as integrações AWS SDK do Step Functions ou usar uma das integrações otimizadas do Step Functions.

Fluxos de trabalho Padrão e Expressos

O Step Functions tem dois tipos de fluxo de trabalho. Os fluxos de trabalho padrão têm execução de fluxo de trabalho única e podem durar até um ano. Isso significa que cada etapa do fluxo de trabalho padrão será executada somente uma vez. Os fluxos de trabalho expressos, no entanto, têm execução at-least-once de fluxo de trabalho e podem ser executados por até cinco minutos. Isso significa que uma ou mais etapas em um fluxo de trabalho expresso podem ser executadas mais de uma vez, enquanto cada etapa do fluxo de trabalho é executada pelo menos uma vez.

As execuções são instâncias em que o fluxo de trabalho é executado para a realização de tarefas. Os fluxos de trabalho padrão são ideais para fluxos de trabalho auditáveis e de longa duração, pois mostram o histórico de execução e a depuração visual. Os fluxos de trabalho expressos são ideais para high-event-rate cargas de trabalho, como processamento de dados de streaming e ingestão de dados de IoT.

Especificações de fluxos de trabalho padrão

  • Taxa de execução de 2 mil por segundo

  • Taxa de transição de estado de 4 mil por segundo

  • Cobrança realizada por transição de estado

  • Exibição do histórico de execução e depuração visual

  • Compatibilidade com todas as integrações e padrões de serviço

Especificações de fluxos de trabalho expressos

  • Taxa de execução de cem mil por segundo

  • Taxa de transição de estado quase ilimitada

  • Cobrança realizada conforme o número e duração das execuções

  • Enviar histórico de execução para a Amazon CloudWatch

  • Exibição do histórico de execução e depuração visual com base no nível de log ativo

  • Compatibilidade com a todas as integrações e a maioria dos padrões de serviço

Para obter mais informações sobre os fluxos de trabalho padrão e expresso, incluindo preços do Step Functions, consulte:

Casos de uso

O Step Functions gerencia os componentes e a lógica do aplicativo para que você possa escrever menos código e se concentrar na criação e atualização rápida de aplicativos. Esta seção descreve casos de uso comuns para trabalhar com o Step Functions.

Caso de uso 1: Orquestração de funções


          Encadeamento

Crie um fluxo de trabalho que executa um grupo de funções (etapas) do Lambda em uma ordem específica. A saída de uma função do Lambda é transferida para a próxima entrada da função do Lambda. A última etapa do fluxo de trabalho apresenta o resultado. Com o Step Functions, é possível ver como cada etapa do fluxo de trabalho interage entre si, assim você pode garantir que cada etapa execute a função pretendida.

Para obter um tutorial que mostra como criar uma máquina de estado com um grupo de funções, consulte:

Caso de uso 2: Ramificação


          Ramificação

O cliente solicita um aumento do limite de crédito. Usando o estado Choice, faça o Step Functions tomar decisões com base na entrada do estado Choice. Se a solicitação for maior do que o limite de crédito pré-aprovado para o cliente, faça o Step Functions enviar a solicitação do cliente para a aprovação do gerente. Se a solicitação for menor do que o limite de crédito pré-aprovado para o cliente, faça o Step Functions aprovar automaticamente a solicitação.

Caso de uso 3: Tratamento de erros


          Tentar novamente/Capturar

Retry

Nesse caso de uso, o cliente solicita um nome de usuário. Devido a um erro, a solicitação do cliente não foi concluída na primeira tentativa. Usando a instrução Retry, faça o Step Functions repetir a solicitação do cliente. Na segunda tentativa, a solicitação do cliente é concluída com êxito.

Catch

Em um caso de uso semelhante, o cliente solicita um nome de usuário indisponível. Usando a instrução Catch, faça o Step Functions sugerir um nome de usuário disponível. Se o cliente usar o nome de usuário disponível, faça o Step Functions seguir para a próxima etapa do fluxo de trabalho, que é enviar um e-mail de confirmação. Se o cliente não usar o nome de usuário disponível, faça o Step Functions seguir para uma etapa diferente do fluxo de trabalho, que é reiniciar o processo de cadastro.

Para obter exemplos mais detalhados sobre as instruções Retry e Catch, consulte:

Caso de uso 4: Notificar pessoas


          Encadeamento

Usando um aplicativo bancário, um dos clientes envia dinheiro para um amigo. O cliente espera por um e-mail de confirmação. Com um retorno de chamada e um token de tarefa, faça o Step Functions dizer ao Lambda para enviar o dinheiro do cliente e informar quando o amigo do cliente o receber. Depois que o Lambda informar que o amigo do cliente recebeu o dinheiro, faça o Step Functions seguir para a próxima etapa do fluxo de trabalho, que é enviar ao cliente um e-mail de confirmação.

Para ver um exemplo de projeto que mostra o retorno de chamada com um token de tarefa, consulte o seguinte:

Caso de uso 5: Processamento paralelo


          Paralelismo

O cliente converte um arquivo de vídeo em cinco resoluções de exibição diferentes, para que os espectadores possam assistir ao vídeo em vários dispositivos. Usando o estado Parallel, o Step Functions insere o arquivo de vídeo para que o Lambda possa processá-lo nas cinco resoluções de exibição ao mesmo tempo.

Caso de uso 6: Paralelismo dinâmico


          Encadeamento

O cliente pede três itens e você precisa preparar cada um deles para a entrega. Você verifica a disponibilidade de cada item, os separa e, em seguida, embala cada item para a entrega. Usando o estado Map, o Step Functions faz o Lambda processar cada um dos itens do cliente paralelamente. Depois que todos os itens do cliente forem embalados para entrega, o Step Functions segue para a próxima etapa do fluxo de trabalho, que é enviar ao cliente um e-mail de confirmação com as informações de rastreamento.

Para ver um exemplo de projeto que mostra o paralelismo dinâmico usando o estado Map, consulte:

Integrações de serviços

O Step Functions se integra a vários AWS serviços. Para combinar o Step Functions com esses serviços, use os padrões de integração de serviços a seguir.

Solicitar resposta (padrão)
  • Chame um serviço e faça o Step Functions avançar para o próximo estado assim que obter uma resposta HTTP.

Executar tarefa (.sync)
  • Chame um serviço e faça o Step Functions aguardar a conclusão de uma tarefa.

Aguarde um retorno de chamada com um token de tarefa (. waitForTaskSímbolo)
  • Chame um serviço com um token de tarefa e faça o Step Functions esperar até que o token de tarefa responda com um retorno de chamada.

A tabela abaixo mostra as integrações de serviços e os padrões de integração de serviços disponíveis para o Step Functions.

Os fluxos de trabalho padrão e os fluxos de trabalho expressos oferecem suporte às mesmas integrações, mas não aos mesmos padrões de integração.

  • O suporte ao padrão de integrações otimizadas é diferente para cada integração.

  • Os fluxos de trabalho expressos não oferecem suporte a Run a Job (.sync) nem a Wait for Callback (). waitForTaskSímbolo).

  • Para ter mais informações, consulte Comparação entre os fluxos de trabalho padrão e expresso.

Standard Workflows
Integrações de serviços compatíveis
Serviço Resposta de solicitação Executar um trabalho (.sync) Aguardar o retorno de chamada (.waitForTaskToken)
Integrações otimizadas Amazon API Gateway
Amazon Athena
AWS Batch
Amazon Bedrock
AWS CodeBuild
Amazon DynamoDB
Amazon ECS/Fargate
Amazon EKS
Amazon EMR
Amazon EMR on EKS
Amazon EMR Serverless
Amazon EventBridge
AWS Glue
AWS Glue DataBrew
AWS Lambda
Amazon SageMaker
Amazon SNS
Amazon SQS
AWS Step Functions
AWS Integrações de SDK Mais de duzentas
Express Workflows

Regiões com suporte

A maioria das AWS regiões oferece suporte a Step Functions. Para obter uma lista completa das AWS regiões em que o Step Functions está disponível, consulte a Tabela de AWS regiões.

É a primeira vez que você usa o Step Functions?

Se esta é sua primeira vez usando o Step Functions, os tópicos a seguir ajudarão você a entender diferentes partes do trabalho com o Step Functions, incluindo como o Step Functions se combina com outros AWS serviços: