Visão geral

P: O que é o AWS Step Functions?

O AWS Step Functions é um serviço totalmente gerenciado que facilita a coordenação de componentes de aplicativos e microsserviços distribuídos usando fluxos de trabalho visuais. A criação de aplicativos em componentes individuais, cada um deles executando uma função diferente, ajuda a escalar mais facilmente e alterar mais rapidamente os aplicativos.

O Step Functions é uma maneira confiável de coordenar componentes e percorrer as funções de seu aplicativo. O Step Functions fornece um console gráfico para organizar e visualizar os componentes do seu aplicativo como uma série de etapas. Isso facilita a criação e a execução de aplicações com várias etapas.

O Step Functions aciona e monitora automaticamente todas as etapas e tenta executar novamente as etapas que apresentaram falha para que o aplicativo seja executado na ordem e da forma esperada. O Step Functions registra em log o estado de cada etapa. Quando ocorre algum erro, você pode diagnosticar e depurar os problemas mais rapidamente. Você pode alterar e adicionar etapas sem escrever código, facilitando mais a evolução do aplicativo e agilizando a inovação.

P: Quais são os benefícios de projetar meu aplicativo usando a orquestração?

Dividir uma aplicação em componentes de serviço (ou etapas) garante que a falha de um componente não derrube todo o sistema. Cada componente é escalado de forma independente e esse componente pode ser atualizado sem exigir que todo o sistema seja reimplantado após cada alteração.

A coordenação de componentes de serviço envolve o gerenciamento das dependências e da programação da execução, assim como a simultaneidade, de acordo com o fluxo lógico do aplicativo. Nesses aplicativos, você pode usar a orquestração de serviços com essa finalidade e também para processar falhas.

P: Quais são alguns casos de uso comuns do Step Functions?

O Step Functions é útil para qualquer problema computacional ou processo de negócios que possa ser subdividido em uma série de etapas. Também é útil para criar fluxos de trabalho de ponta a ponta para gerenciar tarefas com interdependências. Entre os casos de uso comuns, estão:

  • Processamento de dados: consolide dados de vários bancos de dados em relatórios unificados, refine e reduza grandes conjuntos de dados em formatos úteis, itere e processe milhões de arquivos em um bucket do Amazon Simple Storage Service (S3) com fluxos de trabalho de alta simultaneidade ou coordene análises de várias etapas e fluxos de trabalho de machine learning
  • Criação de aplicações de IA generativa sem servidor: aproveite o Step Functions para orquestrar interações com os modelos básicos do Amazon Bedrock, acelerar o encadeamento, ajustar e enriquecer com recursos de mais de 220 serviços da AWS
  • DevOps e automação de TI: crie ferramentas para integração contínua e implantação contínua ou crie aplicações orientadas por eventos que respondam automaticamente a mudanças na infraestrutura
  • Comércio eletrônico: automatize processos de negócios de missão crítica, como atendimento de pedidos e controle de inventário.
  • Aplicações web: implemente processos robustos de registro de usuários e autenticação de login.

Para obter mais detalhes, explore os casos de uso e os depoimentos de clientes do AWS Step Functions.

P: Como funciona o AWS Step Functions?

Ao usar o Step Functions, você define máquinas de estado que descrevem seu fluxo de trabalho como uma série de etapas, seus relacionamentos e suas entradas e saídas. Máquinas de estado contêm um número de estados, cada um dos quais representa uma etapa em um diagrama de fluxo de trabalho.

Os estados podem realizar trabalho, fazer escolhas, passar parâmetros, iniciar a execução paralela, gerenciar tempos limite ou encerrar seu fluxo de trabalho com êxito ou falha.

O console visual representa graficamente cada estado na ordem de execução de forma automática, o que facilita o projeto de aplicações com várias etapas. O console destaca o status de cada etapa em tempo real e oferece um histórico detalhado de cada execução.

Para obter mais informações, consulte How Step Functions Works (Como funciona o Step Functions) no guia do desenvolvedor do Step Functions.

P: Como o Step Functions se conecta aos meus recursos?

Você pode orquestrar qualquer produto da AWS usando as integrações de serviços ou qualquer componente do aplicativo autogerenciado usando as tarefas de atividades.

As integrações de serviços ajudam a construir chamadas para os serviços da AWS e incluem a resposta no seu fluxo de trabalho. As integrações de serviços do SDK da AWS ajudam a invocar uma das mais de 9 mil ações de API da AWS de mais de 200 serviços diretamente do seu fluxo de trabalho.

As integrações de serviços otimizadas simplificam ainda mais o uso de serviços comuns, como o AWS Lambda, o Amazon Elastic Container Service (ECS), o AWS Glue ou o Amazon EMR, com recursos que incluem geração de políticas do IAM e o padrão RunAJob, que aguardará automaticamente a conclusão de trabalhos assíncronos.

As tarefas de atividades incorporam a integração com trabalhos de atividade que você executa no local de sua preferência, inclusive no Amazon Elastic Compute Cloud (EC2), no Amazon ECS, em um dispositivo móvel ou em um servidor on-premises. O operador da atividade pesquisa o Step Functions para o trabalho, usa qualquer contribuição do Step Functions, executa o trabalho usando seu código e retorna os resultados. Como os operadores da atividade solicitam trabalho, é fácil usar os operadores implantados atrás de um firewall.

Uma máquina de estado do Step Functions pode conter combinações de integrações de serviços e tarefas de atividades. Os aplicativos do Step Functions também podem combinar operadores de atividades executados em um datacenter com tarefas de serviço executadas na nuvem. Os funcionários no datacenter continuam executando normalmente, juntamente com todas as tarefas de serviço baseadas na nuvem.

P: Como faço para começar a usar o Step Functions?

Há várias maneiras de começar a usar o Step Functions:

P: Qual a linguagem usada pelo Step Functions?

As máquinas de estado do AWS Step Functions são definidas em JSON usando o método declarativo Amazon States Language.

Para criar um operador de atividade, você pode usar qualquer linguagem de programação, desde que possa se comunicar com o Step Functions usando APIs de serviço da Web.

Para maior praticidade, você pode usar um SDK da AWS na linguagem de sua preferência. O Lambda comporta código escrito em Node.js (JavaScript), Python, Golang (Go) e C # (usando o tempo de execução do .NET Core e outras linguagens). Para obter mais informações sobre o modelo de programação do Lambda, consulte o Guia do desenvolvedor do Lambda.

P: Meu fluxo de trabalho tem algumas propriedades do Standard Workflows e outras do Express Workflows. Como posso obter o melhor de ambos?

Você pode compor os dois tipos de fluxos de trabalho:

  • Executando os Express Workflows como um fluxo de trabalho secundário dos Standard Workflows: o Express Workflow é invocado em um estado de Tarefa no fluxo de trabalho de orquestração principal e tem êxito ou falha como um todo na perspectiva do fluxo de trabalho principal. Ele está sujeito à política de nova tentativa principal para essa Tarefa.
  • Chamando os Express Workflows em um Express Workflow, contanto que todos os fluxos de trabalho não excedam o limite de duração do principal: você poderá fatorar os fluxos de trabalho dessa foma, se o seu caso de uso for uma combinação de etapas de longa duração que ocorrem uma única vez, e etapas de curta duração com alta ocorrência.

P: Como o Step Functions oferece suporte ao paralelismo?

O Step Functions inclui um estado Map para paralelismo dinâmico. O estado Map tem dois modos operacionais, “Inline” e “Distributed”, e ambos executam o mesmo conjunto de etapas para uma coleção de itens. Um Map no modo “Inline” pode oferecer suporte à simultaneidade de 40 ramificações paralelas e limites de histórico de execução de 25.000 eventos ou aproximadamente 6.500 transições de estado em um fluxo de trabalho. Com o modo “Distributed”, você pode executar até 10.000 ramificações paralelas simultaneamente. O Distributed Map foi otimizado para o Amazon S3, ajudando você a iterar mais facilmente sobre objetos em um bucket do S3. Consulte as perguntas frequentes na seção de integração. As iterações de um Distributed Map são divididas em execuções paralelas para ajudar você a superar os limites de carga útil e histórico de execução. Você também pode escolher se cada iteração é executada por um fluxo de trabalho Standard, que é idempotente, ou fluxo de trabalho Express, que é de maior velocidade e menor custo, mas não idempotente. Saiba mais sobre estado Map.

Comparações

P: Quando devo usar o Step Functions vs. Amazon Simple Queue Service (SQS)?

Você deve usar o AWS Step Functions quando precisar coordenar os componentes de serviço no desenvolvimento de aplicativos altamente escaláveis e auditáveis. O Amazon Simple Queue Service (Amazon SQS) é usado quando for necessária uma fila hospedada confiável e altamente escalável para enviar, armazenar e receber mensagens entre serviços.
 
  • O Step Functions monitora todas as tarefas e eventos em um aplicativo. O SQS exige que você implemente seu próprio monitoramento do aplicativo, principalmente se o aplicativo usar filas múltiplas.
  • O console do Step Functions e as APIs de visibilidade fornecem uma visão centrada no aplicativo que permite pesquisar execuções, analisar os detalhes de uma execução e administrar execuções. O SQS requer a implementação dessas funcionalidades adicionais.
  • O Step Functions oferece diversos recursos que facilitam o desenvolvimento de aplicativos, como a passagem de dados entre tarefas e a flexibilidade da distribuição de tarefas, enquanto o SQS exige a implementação de funcionalidades no aplicativo.
  • O Step Functions tem recursos instantâneos para o desenvolvimento de fluxos de trabalho que coordenam o aplicativo distribuído. O SQS permite a criação de fluxos de trabalho básicos, porém tem funcionalidades limitadas.

Quando devo usar o Step Functions versus o Amazon Simple Workflow Service (SWF)?

Você deve considerar o uso do Step Functions para todos os aplicativos novos, pois ele oferece uma abordagem mais produtiva e ágil para a coordenação de componentes do aplicativo usando fluxos de trabalho visuais. Se você precisar de sinais externos para intervir em seus processos, ou se você quer lançar processos secundários que retornam um resultado para um processo principal, então considere o Amazon Simple Workflow Service (Amazon SWF).

Com o SWF, em vez de gravar máquinas de estado em JSON declarativo, você pode escrever um programa de decisão para separar as etapas de atividade das etapas de decisão. Isso fornece controle total sobre sua lógica de orquestração, mas aumenta a complexidade do desenvolvimento de aplicativos. Você pode desenvolver programas de decisão na linguagem de programação de sua escolha ou usar o Flow Framework para utilizar construções de programação que estruturam interações assíncronas para você.

Como a integração de endpoints HTTPS do Step Functions se relaciona com os destinos de API do Amazon EventBridge?

O Amazon EventBridge é um serviço sem servidor que usa eventos para conectar componentes de aplicações, facilitando para os desenvolvedores a criação de aplicações escaláveis orientadas por eventos. O API Destinations é um recurso do EventBridge que permite criar regras para encaminhar eventos para endpoints de terceiros e dissociar produtores de eventos e consumidores.

A integração de endpoints HTTPS do AWS Step Functions permitirá invocar serviços baseados em HTTPS e receber uma resposta que pode ser usada para controlar o fluxo de sua execução com base em sua lógica de negócios. O Amazon EventBridge se concentra no roteamento de eventos, enquanto o Step Functions se concentra na orquestração de fluxos de trabalho e gerenciamento do estado. A integração da API Destinations do EventBridge e dos endpoints HTTPS da Step Functions pode oferecer suporte a uma conexão para autenticação, assim você pode reutilizar as credenciais de autenticação em todos os serviços. Os dois serviços podem ser usados juntos para criar aplicações distribuídas altamente escaláveis e robustas.

Integração

P: Como conectar e coordenar o Step Functions com outros serviços da AWS?

Os fluxos de trabalho que você cria com o Step Functions podem ser conectados e coordenados com mais de 200 produtos da AWS usando integrações de serviços. Por exemplo, é possível:

  • Invocar uma função do AWS Lambda
  • Executar uma tarefa do ECS ou do AWS Fargate
  • Obter um item existente de uma tabela do Amazon DynamoDB ou colocar um novo item em uma tabela do DynamoDB
  • Enviar um trabalho do AWS Batch e esperar que ele seja concluído
  • Invocar o modelo básico do Amazon Bedrock
  • Publicar uma mensagem em um tópico do SNS
  • Enviar uma mensagem para uma fila do Amazon SQS
  • Iniciar uma execução de trabalho da AWS Glue
  • Criar uma tarefa do Amazon SageMaker para treinar um modelo de machine learning ou transformar um conjunto de dados em lote

Para saber mais sobre como usar ao Step Functions para se conectar a outros serviços da AWS, consulte o Guia do desenvolvedor do Step Functions. Você também pode criar tarefas nas máquinas de estado que executam aplicativos. Consulte as Perguntas frequentes na seção Visão geral. Como o Step Functions se conecta aos meus recursos?

Para os casos de uso mais comuns do Step Functions, acesse a página de casos de uso, onde há casos detalhados e as visualizações de suas arquiteturas.

P: Como o Step Functions se integra com aplicações de terceiros?

Usando a integração de endpoints HTTPS do AWS Step Functions, você pode se integrar diretamente com serviços baseados em HTTP, incluindo aplicações SaaS. Usando uma interface visual, você pode criar e orquestrar aplicações distribuídas compostas por serviços da AWS e aplicativos SaaS.

P: Como posso testar, analisar ou depurar minhas execuções?

Você pode usar a API TestState para testar uma única etapa do seu fluxo de trabalho, possibilitando ciclos de feedback mais rápidos para acelerar o desenvolvimento. O TestState permite que você chame serviços e endpoints diretamente, modifique a entrada para simular diferentes cenários e analise a resposta. Você pode acessar o TestState por meio do Workflow Studio, o que facilita testar à medida que você cria sem a necessidade de implantar seu fluxo de trabalho. O TestState aceita uma única definição e entrada de estado e, em seguida, retorna de forma síncrona a saída do estado junto com as transformações de dados intermediárias. Depois de executar seu fluxo de trabalho, você pode analisar e depurar execuções por meio do Amazon CloudWatch Logs, do AWS X-Ray e diretamente no console de funções do Step por meio de uma experiência visual de operador que ajuda você a identificar rapidamente as áreas problemáticas. 

P: Como o Step Functions pode me ajudar a processar um grande conjunto de dados no Amazon S3?

Você pode criar fluxos de trabalho usando um estado Map no modo Distributed para executar o processamento em grande escala de dados, como logs, arquivos de mídia, transações de vendas ou dados de sensor de IoT. O Step Functions percorrerá os itens e iniciará execuções de fluxo de trabalho paralelo instantaneamente, permitindo que você crie processamento de dados sob demanda em escala. O estado Distributed Map foi otimizado para funcionar com o S3. Você pode especificar um bucket do S3 com critérios de filtro, um arquivo de manifesto do S3, coleção JSON ou arquivo CSV armazenado no S3 como entradas para seu fluxo de trabalho. Você também pode especificar um bucket do S3 para as saídas de execução de um Distributed Map.

Como o Step Functions funciona com o Amazon API Gateway?

Você pode associar as APIs do Step Functions ao Amazon API Gateway para que essas APIs invoquem as máquinas de estado quando uma solicitação HTTPS for enviada para um método de API definido por você.

Você pode usar uma API do API Gateway para iniciar máquinas de estado do Step Functions que coordenam os componentes de um aplicativo de back-end distribuído e integram tarefas de atividades humanas nas etapas do aplicativo, como solicitações de aprovação e respostas.

Você também pode fazer chamadas assíncronas sem servidor para as APIs de serviços que o aplicativo usa. Para obter mais informações, experimente nosso tutorial, Creating a Step Functions API Using API Gateway (Como criar uma API do Step Functions usando o API Gateway).

P: Como o AWS Step Functions funciona com o Amazon EventBridge?

Coreografia e orquestração são dois modelos diferentes para como os serviços distribuídos podem se comunicar entre si. Na orquestração, a comunicação é mais rigorosamente controlada e o Step Functions, um serviço de orquestração, coordena a interação e a ordem nas quais os serviços são invocados.

A coreografia obtém comunicação sem um controle rigoroso. Com o Amazon EventBridge, os eventos fluem entre os serviços sem uma coordenação centralizada. Muitos aplicativos usam a coreografia e a orquestração para diferentes casos de uso. 

Exemplos de como você pode usar o Step Functions e o EventBridge juntos incluem o envio de um evento ou a criação de uma programação com o EventBridge Scheduler para acionar um fluxo de trabalho do AWS Step Functions, seguido pela emissão de eventos em diferentes etapas do fluxo de trabalho.

O que é o AWS Step Functions versus AWS Lambda

O AWS Lambda é um serviço de computação com tecnologia sem servidor e orientado a eventos que permite executar código para praticamente qualquer tipo de aplicativo ou serviço de back-end sem que seja necessário provisionar ou gerenciar servidores. O Step Functions é um serviço de orquestração sem servidor que permite coordenar facilmente várias funções do Lambda em fluxos de trabalho fáceis de depurar e de alterar. O Step Functions manterá as funções do Lambda livres de lógica adicional acionando e monitorando cada etapa do aplicativo para você.

O AWS Step Functions é um serviço sem servidor?

Sim, o Step Functions é um serviço de orquestração sem servidor. O Step Functions escala automaticamente as operações e a computação subjacente para executar as etapas do aplicativo para você em resposta às workloads dinâmicas. O Step Functions tem a tolerância a falhas integrada e mantém a capacidade de serviço em várias zonas de disponibilidade em cada região para proteger os aplicativos contra falhas no datacenter ou em uma máquina individual. Isso ajuda a garantir alta disponibilidade para o serviço em si e para o fluxo da aplicação que ele opera.
 
O Step Functions oferece modelo de pagamento conforme o uso para aumentar a agilidade e otimizar os custos. Saiba mais sobre os preços do Step Functions.

P: Como o registro em log e o monitoramento funcionam para o Step Functions?

O AWS Step Functions envia métricas para o Amazon CloudWatch e o AWS CloudTrail para o monitoramento de aplicativos. O CloudWatch coleta e monitora métricas, define alarmes e reage automaticamente a alterações no AWS Step Functions.

O CloudTrail captura todas as chamadas de API para Funções de Etapa como eventos, incluindo chamadas do console do Step Functions e de chamadas de código para as APIs do Step Functions. O Step Functions também oferece suporte a regras gerenciadas do CloudWatch Events para cada serviço integrado em seu fluxo de trabalho e criará e gerenciará regras do CloudWatch Events na sua conta da AWS, conforme necessário.

Para obter mais informações, veja como monitorar e registrar em log no Guia do desenvolvedor do Step Functions.

P: O que acontece se meu Express Workflow falhar em consequência do excesso de tentativas repetidas ou de uma exceção não gerenciada?

Por padrão, Express Workflows relatam todos os resultados nos CloudWatch Logs, incluindo entradas, saídas e etapas concluídas do fluxo de trabalho. Você pode selecionar diferentes níveis de registro em log para registrar somente os erros, e não registrar as entradas e as saídas. Fluxos de trabalho que tiverem um excesso de tentativas repetidas ou uma exceção não gerenciada devem ser executados novamente desde o início.

P: Como o Step Functions ajuda você a criar aplicações de IA generativa?

O Step Functions tem uma integração otimizada com o Amazon Bedrock. Você pode invocar os modelos básicos do Bedrock diretamente do fluxo de trabalho do Step Functions usando linguagem natural. Isso permite que você:   

  • Enriqueça os dados processados pelo Step Functions com recursos de IA generativa para reduzir a complexidade do tratamento de seus dados, como resumo de texto, geração de imagens ou personalização.
  • Recupere informações de bancos de dados, como os preços mais recentes de produtos e dados de personalização do usuário, e use as funções intrínsecas do Step Functions para injetá-las no prompt, certificando-se de que o LLM use os dados mais atuais para melhorar a precisão da resposta.
  • Gere incorporações fazendo com que o Step Functions examine documentos, extraia dados, agrupe os documentos e transforme os dados de texto digital em incorporação como um processo de várias etapas. Isso pode ser agendado como um processo recorrente.
  • Use fluxos de trabalho do Step Function para encadeamento imediato. Você pode orquestrar várias chamadas de LLM e escolher o melhor modelo para cada estágio da cadeia, formando uma cadeia personalizada de etapas de processamento, selecionando respostas mais contextuais e precisas do modelo fundamental.
  • Crie interações Human-in-the-loop (HITL) com seu fluxo de trabalho de IA generativa para moderar as respostas e evitar alucinações ou incorporar lógica para lidar com respostas que não são suportadas pelo modelo fundamental.

Segurança

P: Posso acessar o Step Functions nos recursos por trás do meu Amazon VPC sem conectar-me à Internet?

O Step Functions também oferece suporte a endpoints da VPC (VPCE) usando o AWS PrivateLink. Você pode acessar o Step Functions nas funções do AWS Lambda habilitadas para VPC e de outros serviços da AWS sem acessar a Internet pública.

Para obter mais informações, consulte Amazon VPC Endpoints for Step Functions (Endpoints da Amazon VPC para Step Functions) no guia do desenvolvedor do Step Functions.

Conformidade

P: Quais são os padrões de conformidade aceitos pelo Step Functions?

O Step Functions está em conformidade com a HIPAA, FedRAMP, SOC, GDPR e outros padrões de conformidade comuns. Consulte o site Segurança na Nuvem AWS para obter uma lista detalhada dos padrões de conformidade aceitos.

Comece a usar o AWS Step Functions

Acesse a página de conceitos básicos