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 Lambda
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
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
Tópicos
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.
-
As integrações do AWS SDK permitem que você chame qualquer um dos mais de duzentos AWS serviços diretamente de sua máquina de estado, dando acesso a mais de nove mil ações de API.
-
As integrações otimizadas do Step Functions foram personalizadas para simplificar a utilização nas máquinas de estado.
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
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
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
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
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
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
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.
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: