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 é Step Functions?
Com AWS Step Functions, você pode criar fluxos de trabalho, também chamados deMáquinas de estado, para criar aplicativos distribuídos, automatizar processos, orquestrar microsserviços e criar pipelines de dados e aprendizado de máquina.
O Step Functions é baseado em máquinas e tarefas de estado. Em Step Functions, as máquinas de estado são chamadas de fluxos de trabalho, que são uma série de etapas orientadas por eventos. Cada etapa em um fluxo de trabalho é chamada de estado. Por exemplo, um estado de tarefa representa uma unidade de trabalho que outra AWS o serviço é executado, como ligar para outro AWS service (Serviço da AWS) ouAPI. As instâncias de fluxos de trabalho em execução executando tarefas são chamadas de execuções em Step Functions.
O trabalho em suas tarefas de máquina de estado também pode ser feito usando Atividades quais trabalhadores existem fora do Step Functions.
No console do Step Functions, você pode visualizar, editar e depurar o fluxo de trabalho do seu aplicativo. Você pode examinar o estado de cada etapa em seu fluxo de trabalho para garantir que seu aplicativo seja executado em ordem e conforme o esperado.
Dependendo do seu caso de uso, você pode fazer com que Step Functions chame AWS serviços, como o Lambda, para realizar tarefas. Você pode ter o controle Step Functions AWS serviços, como AWS Glue, para criar fluxos de trabalho de extração, transformação e carregamento. Você também pode criar fluxos de trabalho automatizados e de longa duração para aplicações que exigem interação humana.
Para obter uma lista completa de AWS regiões em que o Step Functions está disponível, consulte o AWS
Tabela de regiões
Saiba como usar o Step Functions
Para aprender a usar o Step Functions, siga os módulos interativos no The Step Functions Workshop
Tipos de fluxos de trabalho padrão e expresso
O Step Functions tem dois tipos de fluxo de trabalho:
-
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 padrão têm uma execução de fluxo de trabalho exatamente uma vez e podem ser executados por até um ano. Isso significa que cada etapa do fluxo de trabalho padrão será executada somente uma vez.
-
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.
Os fluxos de trabalho expressos têm execução at-least-oncede 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.
Fluxos de trabalho Padrão | Fluxos de trabalho expressos |
---|---|
Taxa de execução de 2 mil por segundo | Taxa de execução de cem mil por segundo |
Taxa de transição de estado de 4 mil por segundo | Taxa de transição de estado quase ilimitada |
Cobrança realizada por transição de estado | Cobrança realizada conforme o número e duração das execuções |
Exibição do histórico de execução e depuração visual | Mostrar histórico de execução e depuração visual com base no nível do log |
Veja o histórico de execução em Step Functions |
Enviar histórico de execução para CloudWatch |
Support integrações com todos os serviços. Support integrações otimizadas com alguns serviços. |
Support integrações com todos os serviços. |
Padrão Support Request Response para todos os serviços Support os padrões Run a Job e/ou Wait for Callback em serviços específicos (consulte a seção a seguir para obter detalhes) |
Padrão Support Request Response para todos os serviços |
Para obter mais informações sobre os preços do Step Functions e a escolha do tipo de fluxo de trabalho, consulte o seguinte:
Integrar-se a outros serviços da
Step Functions se integra com vários AWS serviços. Para ligar para outro AWS serviços, você pode usar dois tipos de integração:
-
AWS SDKas integrações fornecem uma maneira de chamar qualquer AWS serviço diretamente de sua máquina de estado, dando acesso a milhares de API ações.
-
As integrações otimizadas fornecem opções personalizadas para usar esses serviços em suas máquinas de estado.
Para combinar o Step Functions com outros serviços, há três padrões de integração de serviços:
-
Resposta da solicitação (padrão)
Chame um serviço e deixe o Step Functions avançar para o próximo estado depois de receber uma HTTP resposta.
-
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.
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.
-
Os fluxos de trabalho padrão oferecem suporte às integrações de Solicitação e Resposta. Alguns serviços oferecem suporte a Run a Job (.sync) ou Wait for Callback (). waitForTaskToken) e ambos em alguns casos. Consulte a tabela de integrações otimizadas a seguir para obter detalhes.
-
Os fluxos de trabalho expressos são compatíveis somente com integrações de solicitação e resposta.
Para ajudar a decidir entre os dois tipos, consulteEscolhendo o tipo de fluxo de trabalho em Step Functions.
AWS SDKintegrações em Step Functions
Serviço integrado | Resposta de solicitação | Executar um Job - .sync | Aguarde o retorno de chamada -. waitForTaskToken |
---|---|---|---|
Mais de duzentos serviços | Padrão e expresso | Sem compatibilidade | Padrão |
Integrações otimizadas em Step Functions
Serviço integrado | Resposta de solicitação | Executar um Job - .sync | Aguarde o retorno de chamada -. waitForTaskToken |
---|---|---|---|
Amazon API Gateway | Padrão e expresso | Sem compatibilidade | Padrão |
Amazon Athena | Padrão e expresso | Padrão | Sem compatibilidade |
AWS Batch | Padrão e expresso | Padrão | Sem compatibilidade |
Amazon Bedrock | Padrão e expresso | Padrão | Padrão |
AWS CodeBuild | Padrão e expresso | Padrão | Sem compatibilidade |
Amazon DynamoDB | Padrão e expresso | Sem compatibilidade | Sem compatibilidade |
Amazon ECS/Fargate | Padrão e expresso | Padrão | Padrão |
Amazon EKS | Padrão e expresso | Padrão | Padrão |
Amazon EMR | Padrão e expresso | Padrão | Sem compatibilidade |
Amazon EMR on EKS | Padrão e expresso | Padrão | Sem compatibilidade |
Amazon EMR Serverless | Padrão e expresso | Padrão | Sem compatibilidade |
Amazon EventBridge | Padrão e expresso | Sem compatibilidade | Padrão |
AWS Glue | Padrão e expresso | Padrão | Sem compatibilidade |
AWS Glue DataBrew | Padrão e expresso | Padrão | Sem compatibilidade |
AWS Lambda | Padrão e expresso | Sem compatibilidade | Padrão |
AWS Elemental MediaConvert | Padrão e expresso | Padrão | Sem compatibilidade |
Amazon SageMaker | Padrão e expresso | Padrão | Sem compatibilidade |
Amazon SNS | Padrão e expresso | Sem compatibilidade | Padrão |
Amazon SQS | Padrão e expresso | Sem compatibilidade | Padrão |
AWS Step Functions | Padrão e expresso | Padrão | Padrão |
Exemplos de casos de uso para fluxos de trabalho
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. A imagem a seguir mostra seis casos de uso para fluxos de trabalho do Step Functions.
-
Orquestrar tarefas — Você pode criar fluxos de trabalho que orquestram uma série de tarefas, ou etapas, em uma ordem específica. Por exemplo, a Tarefa A pode ser uma função Lambda que fornece entradas para outra função Lambda na Tarefa B. A última etapa do seu fluxo de trabalho fornece o resultado final.
-
Escolha tarefas com base em dados — Usando um
Choice
estado, você pode fazer com que o Step Functions tome decisões com base na entrada do estado. Por exemplo, imagine que um cliente solicite um aumento no limite de crédito. 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. -
Tratamento de erros (
Retry
/Catch
) — Você pode repetir tarefas com falha ou capturar tarefas com falha e executar etapas alternativas automaticamente.Por exemplo, depois que um cliente solicita um nome de usuário, talvez a primeira chamada para seu serviço de validação falhe, então seu fluxo de trabalho pode repetir a solicitação. Quando a segunda solicitação for bem-sucedida, o fluxo de trabalho poderá continuar.
Ou, talvez o cliente tenha solicitado um nome de usuário inválido ou indisponível. Uma
Catch
declaração poderia levar a uma etapa do fluxo de trabalho do Step Functions que sugere um nome de usuário alternativo.Para obter exemplos de
Retry
eCatch
, consulteTratamento de erros nos fluxos de trabalho do Step Functions. -
Human in the loop — Step Functions pode incluir etapas de aprovação humana no fluxo de trabalho. Por exemplo, imagine que um cliente bancário tente enviar fundos para um amigo. Com um retorno de chamada e um token de tarefa, você pode fazer com que o Step Functions espere até que o amigo do cliente confirme a transferência e, em seguida, o Step Functions continuará o fluxo de trabalho para notificar o cliente bancário de que a transferência foi concluída.
Para ver um exemplo, consulte Crie um exemplo de padrão de retorno de chamada com Amazon SQSSNS, Amazon e Lambda.
-
Processar dados em etapas paralelas — Usando um
Parallel
estado, o Step Functions pode processar dados de entrada em etapas paralelas. Por exemplo, um cliente pode precisar converter um arquivo de vídeo em várias resoluções de exibição para que os espectadores possam assistir ao vídeo em vários dispositivos. Seu fluxo de trabalho pode enviar o arquivo de vídeo original para várias funções do Lambda ou usar o otimizado AWS Elemental MediaConvert integração para processar um vídeo em várias resoluções de exibição ao mesmo tempo. -
Processe elementos de dados dinamicamente — Usando um
Map
estado, o Step Functions pode executar um conjunto de etapas do fluxo de trabalho em cada item em um conjunto de dados. As iterações são executadas em paralelo, o que possibilita o processamento rápido de um conjunto de dados. Por exemplo, quando seu cliente encomenda trinta itens, seu sistema precisa aplicar o mesmo fluxo de trabalho para preparar cada item para entrega. Depois que todos os itens forem coletados e embalados para entrega, a próxima etapa pode ser enviar rapidamente ao cliente um e-mail de confirmação com informações de rastreamento.Para obter um exemplo de modelo inicial, consulteProcessar dados com um mapa.