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 aplicações distribuídas e microsserviços usando fluxos de trabalho visuais. A criação de aplicativos a partir de componentes individuais, cada um deles executando uma função diferente, permite que você dimensione facilmente e altere 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 simplifica a criação e a execução de aplicativos com várias etapas. O Step Functions aciona e rastreia automaticamente todas as etapas e tenta executar novamente etapas que apresentaram falha para que o aplicativo 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.

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

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 a necessidade de uma 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 comuns do 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. 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 ou coordene fluxos de trabalho de análise de múltiplas etapas e de machine learning
  • DevOps e automação de TI: crie ferramentas para integração contínua e implantação contínua ou crie aplicativos orientados a 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 AWS 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 individual 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 Como funciona o Step Functions no Guia do desenvolvedor do AWS Step Functions.

P: Como o AWS Step Functions se conecta a meus recursos?

Você pode orquestrar qualquer produto da AWS usando o Service Integrations ou qualquer componente de aplicação autogerenciado usando o Activity Tasks.

O Service Integrations permite construir chamadas para os produtos da AWS e incluir a resposta em seu fluxo de trabalho. O AWS-SDK Service Integrations permite invocar uma das mais de 9 mil ações de API da AWS de mais de 200 serviços diretamente de seu fluxo de trabalho. O Service Integrations otimizado simplifica ainda mais o uso de serviços comuns, como o Lambda, ECS, Glue ou 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.

O Activity Tasks permite a integração com trabalhos de atividade que você executa no local de sua preferência, inclusive no Amazon EC2, no Amazon ECS, em um dispositivo móvel ou em um servidor on-premises. O operador da atividade do Step Functions pesquisa para o trabalho, pega qualquer entrada do Step Functions, executa o trabalho usando seu código e retorna 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 AWS Step Functions pode conter combinações de Service Integrations e Activity Tasks. As aplicações do AWS Step Functions também podem combinar operadores de atividades em execução 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 AWS Step Functions?

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

P: Qual a linguagem usada pelo AWS 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 AWS Step Functions usando APIs de serviço da Web. Por conveniência, você pode usar um SDK da AWS no idioma de sua escolha. O AWS Lambda suporta código escrito em Node.js (JavaScript), Python, Golang (Go) e C # (usando o tempo de execução do .NET Core e outros idiomas). Para obter mais informações sobre o modelo de programação do Lambda, consulte o Guia do desenvolvedor do AWS 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 fluxo de trabalho: o Express pode ser executado como um fluxo de trabalho secundário de Standard. 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 do fluxo de trabalho principal para essa Tarefa. Você também pode chamar o Express Workflow dentro de um Express Workflow, desde que todos os fluxos de trabalho não excedam a duração limite do principal. Convém optar por determinar seus fluxos de trabalho dessa maneira se o seu caso de uso tiver uma combinação de etapas de longa execução ou com taxa alta de ocorrência exatamente uma vez e de curta duração. 

Comparações

P: Quando devo usar o AWS Step Functions vs. o Amazon SQS?

Você deve considerar o AWS Step Functions quando precisar coordenar os componentes de serviço no desenvolvimento de aplicativos altamente escaláveis e auditáveis. Você deve considerar o Amazon Simple Queue Service (Amazon SQS) quando precisar 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 um aplicativo. Com o Amazon SQS é necessário implementar seu próprio acompanhamento de nível de aplicativo, especialmente se o aplicativo usa 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, detalhar os detalhes de uma execução e administrar execuções. O Amazon SQS requer a implementação dessas funcionalidades. 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 requer a implementação de algumas funcionalidades do nível de aplicativo. Embora você possa usar o Amazon SQS para criar fluxos de trabalho básicos para coordenar sua aplicação distribuída, você pode obter esse recurso pronto para uso com o Step Functions, junto com outros recursos no nível da aplicação.

 

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

Você deve considerar o uso do AWS Step Functions para todos os novos aplicativos, 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ê precisar de sinais externos para intervir em seus processos, ou se você gostaria de lançar processos filhos que retornam um resultado para um pai, então você deve considerar o Amazon Simple Workflow Service (Amazon SWF). Com o Amazon SWF, em vez de gravar máquinas de estado em JSON declarativo, você escreve 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 escrever programas de decisão na linguagem de programação de sua escolha, ou você pode usar o framework Flow para usar construções de programação que estruturam interações assíncronas para você.

Integração

P: Como conectar e coordenar o AWS Step Functions com outros produtos da AWS?

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

  • Invocar uma função do AWS Lambda
  • Executar uma tarefa do Amazon Elastic Container Service ou 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 espere que ele seja concluído
  • Publicar uma mensagem em um tópico do Amazon 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 em suas máquinas de estado que executam aplicações. Consulte as Perguntas frequentes na seção Visão geral. Como o AWS Step Functions se conecta aos meus recursos?

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

Você pode associar suas APIs de funções de etapa ao Amazon API Gateway para que essas APIs invoquem suas 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 Amazon API Gateway para iniciar máquinas de estado do Step Functions que coordenam os componentes de uma aplicação de backend distribuída e integram tarefas de atividades humanas nas etapas de sua aplicação, 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 seu aplicativo usa. Para obter mais informações, experimente nosso tutorial, Como criar uma API do Step Functions usando o API Gateway

 

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

O AWS Step Functions envia métricas para o Amazon CloudWatch e o AWS CloudTrail para monitoramento de aplicações. O Amazon CloudWatch coleta e rastreia métricas, define alarmes e reage automaticamente a alterações no AWS Step Functions. O AWS 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 Amazon 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, consulte Monitoramento e registro em log no Guia do desenvolvedor do AWS Step Functions.

 

P: O que acontece se meu Express Workflow falhar em consequência de 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 reexecutados do início.

Segurança

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

O Step Functions também oferece suporte a VPC Endpoints (VPCE) usando o AWS PrivateLink. Você pode acessar o Step Functions a partir das 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 Endpoints da Amazon Virtual Private Cloud para o AWS Step Functions no Guia do desenvolvedor do AWS Step Functions.

Conformidade

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

O AWS Step Functions está em conformidade com a HIPAA, FedRAMP, SOC, GDPR e outros padrões de conformidade comuns. Consulte o site de 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