O AWS Step Functions já está disponível

Experimente o AWS Step Functions gratuitamente

O nível gratuito do AWS Step Functions inclui 4.000 transições de estado a cada mês.  

Veja detalhes do nível gratuito da AWS »


P: O que é o AWS Step Functions?

O AWS Step Functions é um serviço gerenciado que facilita a coordenação de componentes de aplicações distribuídas e microsserviços usando fluxos de trabalho visuais. A criação de aplicações usando componentes individuais, cada um deles executando uma função discreta, permite alterar rapidamente a escala e as aplicações. O Step Functions é uma forma confiável de coordenar componentes e percorrer as funções da aplicação. O Step Functions oferece um console gráfico para organizar e visualizar os componentes da aplicação como uma série de etapas. Isso simplifica a criação e a execução de aplicações com várias etapas. O Step Functions aciona e rastreia automaticamente todas as etapas e tenta executar novamente etapas que apresentaram falha para que a aplicação execute 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 rapidamente os problemas. Você pode alterar e adicionar etapas sem escrever código, facilitando a evolução da aplicação e agilizando a inovação.

O AWS Step Functions gerencia as operações e a infraestrutura subjacente para ajudar a garantir a disponibilidade da aplicação em qualquer escala.

P: Quais são os benefícios de projetar uma aplicação usando orquestração de serviços para coordenar tarefas?

A divisão de uma aplicação em componentes de serviços (ou etapas) garante que a falha de um componente não cause a indisponibilidade de todo o sistema, que seja possível alterar a escala de cada componente de forma independente dos demais e que os componentes possam ser atualizados sem necessidade de nova implantação de todo o sistema após cada alteração. A coordenação de componentes de serviço envolve o gerenciamento das dependências de execução, da programação e da colaboração de acordo com o fluxo lógico do aplicativo. Nessas aplicações, os desenvolvedores podem usar a orquestração de serviços com essa finalidade e também para processar falhas.

P: Quais são alguns casos de uso que podem ser solucionados com o AWS Step Functions?

O AWS Step Functions é útil para qualquer problema computacional ou processo de negócios que possa ser subdividido em uma série de etapas. Entre os casos de uso comuns, estão:

  • Processamento de documentos e dados: consolide dados de vários bancos de dados em relatórios unificados. Refine e reduza conjuntos de dados grandes em formatos úteis.
  • Desenvolvimento e operações: crie ferramentas para integração e implantação contínuas. Crie aplicações orientadas a eventos que respondem automaticamente a alterações 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.

P: Como funciona o AWS Step Functions?

Com o AWS Step Functions, você define a aplicação como uma máquina de estados, uma série de etapas que capturam juntas o comportamento da aplicação. Os estados da máquina de estados podem ser tarefas, etapas sequenciais, etapas paralelas, caminhos ramificados (escolha) e/ou temporizadores (espera). As tarefas são unidades de trabalho. Esse trabalho pode ser executado por funções do AWS Lambda, instâncias do Amazon EC2 de qualquer tipo, contêineres ou servidores locais. Você pode atribuir uma tarefa a qualquer coisa que possa se comunicar com a API do Step Functions. 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. O Step Functions opera e altera a escala da aplicação e da computação subjacente, ajudando a garantir a execução confiável da aplicação em condições de aumento de demanda.

P: Quando devo usar o AWS Step Functions e quando devo usar o Amazon SQS?

Você deve considerar o AWS Step Functions quando precisa coordenar componentes de serviço no desenvolvimento de aplicações altamente escaláveis e auditáveis. Você deve considerar o Amazon Simple Queue Service (SQS) quando precisa de uma fila hospedada confiável e altamente escalável para enviar, armazenar e receber mensagens entre serviços. O Step Functions acompanha todas as tarefas e eventos em uma aplicação. O Amazon SQS exige que você implemente o seu próprio acompanhamento de aplicações, particularmente se a aplicação usa várias filas. O console e as APIs de visibilidade do Step Functions oferecem uma visibilidade centrada na aplicação que permite pesquisar execuções, analisar detalhes dessas execuções e gerenciá-las. O Amazon SQS exige a implementação dessas funcionalidades adicionais. O Step Functions oferece diversos recursos para facilitar o desenvolvimento de aplicações, como a passagem de dados entre tarefas e flexibilidade na sua distribuição. O Amazon SQS exige que você implemente algumas funcionalidades para as aplicações. Embora você possa usar o Amazon SQS para criar fluxos de trabalho básicos para coordenar uma aplicação distribuída, o Step Functions oferece essa facilidade pronta para uso, juntamente com outros recursos para aplicações.

P: Quando devo usar o AWS Step Functions e quando devo usar o AWS Batch?

O AWS Batch é um serviço que facilita a execução de fluxos de trabalho de computação em lotes em qualquer escala na Nuvem AWS. Você deve usar o AWS Step Functions quando precisa criar uma aplicação distribuída como uma série de etapas, incluindo lógica sequencial, paralela e/ou de ramificação (escolhas). Você pode usar o Batch para executar trabalhos em aplicações e usar o Step Functions para enviar vários trabalhos do Batch que contêm interdependências. Use o Batch quando precisar gerenciar automaticamente uma infraestrutura de computação para alterar automaticamente a escala de acordo com as necessidades do processamento em lotes.

P: Quando devo usar o AWS Step Functions e quando devo usar o Amazon Simple Workflow Service (SWF)?

Você deve considerar o uso do AWS Step Functions para todas as novas aplicações, pois ele oferece uma abordagem mais produtiva e ágil para a coordenação de componentes de aplicação usando fluxos de trabalho visuais. Se você precisa de sinais externos para intervir em processos ou quer lançar processos secundários que retornam um resultado para um processo principal, considere o Amazon Simple Workflow Service (SWF). Com o Amazon SWF, em vez de escrever máquinas de estados usando JSON declarativo, você escreve um programa administrador para separa etapas de atividades de etapas de decisões. Com isso, você consegue controle total sobre a orquestração lógica, mas aumenta a complexidade do desenvolvimento das aplicações. É possível escrever programas administradores na sua linguagem de programação preferida. Também é possível usar o framework Flow para utilizar construções de programação que estruturam interações assíncronas para você.

P: O que acontecerá com o Amazon Simple Workflow Service (SWF) atual?

A AWS continuará a fornecer o Amazon Simple Workflow (SWF) e a oferecer suporte a todos os clientes do Amazon SWF.

P: Como o AWS Step Functions funciona com outros serviços da AWS?

O AWS Step Functions funciona em conjunto com vários outros Serviços da AWS, como AWS CloudFormation, AWS Lambda, Amazon EC2, Amazon EC2 Container Service (ECS), Amazon API Gateway, Amazon CloudWatch, AWS CloudTrail e Auto Scaling.

Veja a seguir alguns exemplos do que é possível fazer usando os diversos Serviços da AWS:

  • Lance vários recursos relacionados exigidos para as máquinas de estado e as atividades do AWS Step Functions usando o AWS CloudFormation.
  • Implemente tarefas usando funções ou programas do Lambda executados no EC2 ou em contêineres do ECS.
  • Associe as APIs do Step Functions aos métodos em uma API do API Gateway.
  • Altere a escala da sua frota de tarefas do EC2 para atividades do AWS Step Functions em função das métricas do CloudWatch.

P: Como o AWS Step Functions funciona com o AWS Lambda?

Você pode usar funções do AWS Lambda para executar tarefas na máquina de estados. O AWS Step Functions passa a entrada para a função do Lambda especificada e aguarda que ela retorne um resultado. O Lambda permite criar tarefas sem provisionar e gerenciar servidores, em todas as linguagens compatíveis com o Lambda. Para saber mais sobre o uso de Step Functions com o Lambda, consulte a nossa documentação do Step Functions.

P: Como o AWS Step Functions funciona com o Amazon EC2 e outros recursos de computação?

Todo o trabalho na máquina de estados é executado por tarefas. Uma tarefa pode ser uma atividade, que pode consistir em qualquer código em qualquer linguagem. As atividades podem ser hospedadas no Amazon EC2, no Amazon ECS, em dispositivos móveis – basicamente, em qualquer computador que possa se comunicar com a API do AWS Step Functions. As atividades executam long-poll no Step Functions usando chamadas de API para solicitar trabalho, receber dados de entrada, realizar o trabalho e retornar um resultado.

P: Como o AWS Step Functions funciona com o Amazon API Gateway?

O Amazon API Gateway é um serviço gerenciado que facilita para os desenvolvedores publicar, manter, monitorar e proteger APIs em qualquer escala. Com apenas alguns cliques no Console de Gerenciamento da AWS, é possível associar as APIs do Step Functions a métodos na API do Gateway API para que, quando uma solicitação HTTPS for enviada a um método de API definido por você, o API Gateway chame suas ações de API do Step Functions.

É possível usar uma API do Amazon API Gateway para iniciar máquinas de estado do Step Functions que coordenem os componentes de uma aplicação distribuída de back-end. Também é possível integrar tarefas de atividade humana às etapas da sua aplicação, como as solicitações e as respostas de uma aprovação. Além disso, é possível fazer chamadas assíncronas sem servidor para as APIs dos serviços que a sua aplicação usa.

O Amazon API Gateway processa todas as tarefas relacionadas à aceitação e ao processamento de centenas de milhares de chamadas simultâneas de APIs, inclusive o gerenciamento de tráfego, a autorização e o controle de acesso, o monitoramento e o gerenciamento de versões de APIs.

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

O Amazon CloudWatch é um serviço de monitoramento para serviços e aplicações da AWS executados na AWS. O Amazon CloudWatch coleta e rastreia métricas, define alarmes e reage automaticamente a alterações no AWS Step Functions.

Veja a seguir alguns exemplos do que é possível fazer com o Amazon CloudWatch e o AWS Step Functions:

  • Monitorar métricas de fluxos de trabalho do Step Functions.
  • Lançar fluxos de trabalho do Step Functions como resposta a ao CloudWatch Events.
  • Gerar alarmes quando o Step Functions ultrapassar limites de métricas.
  • Agendar fluxos de trabalho do Step Functions em intervalos de um minuto ou mais usando o CloudWatch Events.

P: Posso usar o AWS Step Functions com meus recursos locais?

Sim. As aplicações do AWS Step Functions podem combinar operadores executados no datacenter com operadores executados na nuvem. Os operadores no datacenter continuam a ser executados como sempre, junto com todos os operadores baseados na nuvem.


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

Para começar a usar o AWS Step Functions, acesse a página de detalhes do AWS Step Functions e clique no botão “Comece a usar gratuitamente”. Caso não tenha uma conta da Amazon Web Services, você será convidado a criar uma. Após a inscrição, você poderá percorrer um exemplo no console do AWS Step Functions, que mostrará as etapas da criação de uma máquina de estados. Acesse o AWS Step Functions no Console de Gerenciamento da AWS. Em seguida, selecione o esquema “Hello World” e adicione uma função “HelloWorld” do Lambda. Agora, você pode visualizar e executar sua máquina de estado. Para começar a usar o AWS Step Functions nas aplicações, consulte a documentação do AWS Step Functions.

P: Qual a linguagem usada pelo AWS Step Functions?

Você pode usar qualquer linguagem de programação para escrever uma atividade, desde que ela possa se comunicar com o AWS Step Functions por meio de APIs de web service. Para sua conveniência, você pode usar um AWS SDK da sua linguagem favorita. O AWS Lambda é compatível com código escrito em Node.js (JavaScript), Python, Java (compatível com Java 8) e C# (usando o runtime .NET Core). As máquinas de estados são definidas em JSON usando o Amazon States Language.


P: Como faço para autenticar usuários?

O AWS Step Functions é integrado ao AWS Identity and Access Management (IAM). As políticas do IAM podem ser usadas para controlar o acesso às APIs do Step Functions.


P: Como sou cobrado pelo uso do AWS Step Functions?

Com o AWS Step Functions, você paga apenas pela transição entre uma etapa do fluxo de trabalho da aplicação para a próxima. Essa transição é denominada transição de estado. A cobrança é medida por transição de estado e independe do tempo de persistência de cada estado (que pode ser de até um ano). Com isso, você pode alterar automaticamente a escala, de algumas execuções por dia a dezenas de milhões de execuções por mês, com economia e facilidade. Consulte a página de definição de preço do AWS Step Functions para obter mais detalhes.