0Pricing
Cloud & IT Cert Prep · Aula

Step Functions: orquestração de fluxos de trabalho sem servidor

Defina fluxos de trabalho com várias etapas como máquinas de estado no Step Functions, trate erros com blocos de captura e repetição e integre integrações nativas do SDK.

Step Functions: orquestração de fluxos de trabalho sem servidor é uma aula grátis de Cloud & IT Cert Prep no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cloud & IT Cert Prep, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cloud & IT Cert Prep inclui 4 aulas no total.

O que são o AWS Step Functions?

AWS Step Functions é um serviço totalmente gerenciado de orquestração de fluxos de trabalho que coordena aplicações distribuídas como uma série de etapas definidas em uma máquina de estados. Cada etapa da máquina de estados é um estado — uma invocação de Lambda, uma chamada do AWS SDK, um período de espera, uma ramificação paralela ou uma escolha (if/else). O Step Functions gerencia o estado, trata novas tentativas e fornece um histórico visual de execução, eliminando a necessidade de escrever a lógica de orquestração no código da aplicação.

Amazon States Language (ASL)

As máquinas de estados são definidas na Amazon States Language (ASL), uma linguagem baseada em JSON. Cada estado tem um Type (Task, Choice, Wait, Parallel, Map, Pass, Succeed, Fail) e faz a transição para um estado Next ou termina. O campo Resource de um estado Task especifica o serviço da AWS a ser invocado — um ARN para Lambda ou um ARN de integração de serviço otimizado para mais de 200 serviços da AWS, sem uma Lambda intermediária.

{
  'Comment': 'Order processing workflow',
  'StartAt': 'ValidateOrder',
  'States': {
    'ValidateOrder': {
      'Type': 'Task',
      'Resource': 'arn:aws:lambda:us-east-1:123456789012:function:ValidateOrder',
      'Next': 'ChargePayment',
      'Retry': [{'ErrorEquals': ['Lambda.ServiceException'], 'IntervalSeconds': 2, 'MaxAttempts': 3}]
    },
    'ChargePayment': {
      'Type': 'Task',
      'Resource': 'arn:aws:states:::dynamodb:putItem',
      'Parameters': {'TableName': 'Orders', 'Item': {'orderId': {'S.$': '$.orderId'}}},
      'End': true
    }
  }
}

Fluxos de trabalho Standard vs. Express

O Step Functions tem dois tipos de fluxo de trabalho. Fluxos de trabalho Standard: duráveis, com duração de até 1 ano, semântica de execução exatamente uma vez e histórico completo de execução armazenado por 90 dias — adequados para processos empresariais de longa duração. Fluxos de trabalho Express: alto volume (mais de 100.000 execuções por segundo), duração de até 5 minutos, semântica de pelo menos uma vez e registros enviados ao CloudWatch — adequados para processamento de eventos em tempo real e fluxos de dados de IoT. Escolha com base na duração, no volume e nos requisitos de idempotência.

# Create a Standard workflow state machine
aws stepfunctions create-state-machine \
  --name OrderProcessing \
  --definition file://order-state-machine.json \
  --role-arn arn:aws:iam::123456789012:role/StepFunctionsRole \
  --type STANDARD

# Create an Express workflow for high-throughput
aws stepfunctions create-state-machine \
  --name ClickstreamProcess \
  --definition file://click-state-machine.json \
  --role-arn arn:aws:iam::123456789012:role/StepFunctionsRole \
  --type EXPRESS

Estados Task e integrações de serviço

Os estados Task do Step Functions oferecem suporte a dois padrões de integração. Solicitação-resposta: chama um serviço da AWS e prossegue imediatamente (disparar e esquecer). Integração Sync: chama um serviço e aguarda sua conclusão antes de avançar para o próximo estado (por exemplo, aguardar o término de uma tarefa do ECS, a conclusão de um trabalho do Glue ou o fim de um trabalho de treinamento do SageMaker). A integração Sync usa o sufixo :sync:2 no ARN do recurso e elimina a necessidade de lógica de consulta periódica.

# Sync integration: start Glue job and wait for completion
'RunGlueETL': {
  'Type': 'Task',
  'Resource': 'arn:aws:states:::glue:startJobRun.sync:2',
  'Parameters': {
    'JobName': 'clean-sales'
  },
  'Next': 'RunAthenaQuery'
}

Estados Choice para lógica de ramificação

Um estado Choice implementa uma ramificação condicional — o equivalente, em um fluxo de trabalho, a uma instrução if/else ou switch. Você define Choices como uma matriz de condições; a primeira condição correspondente determina o próximo estado. Um estado Default trata os casos sem correspondência. Os estados Choice permitem encaminhar um pedido por diferentes caminhos de atendimento com base no tipo de produto, no nível do cliente ou no status do pagamento, sem escrever lógica condicional em uma Lambda.

'RouteByOrderType': {
  'Type': 'Choice',
  'Choices': [
    {
      'Variable': '$.orderType',
      'StringEquals': 'DIGITAL',
      'Next': 'FulfillDigital'
    },
    {
      'Variable': '$.orderType',
      'StringEquals': 'PHYSICAL',
      'Next': 'FulfillPhysical'
    }
  ],
  'Default': 'HandleUnknownType'
}

Estados Parallel e Map

Um estado Parallel executa várias ramificações simultaneamente e aguarda a conclusão de todas antes de prosseguir — útil para tarefas simultâneas, como executar uma verificação de crédito e uma verificação de estoque ao mesmo tempo. Um estado Map percorre uma matriz na entrada e aplica o mesmo conjunto de estados a cada elemento em paralelo — útil para processar um lote de itens retornados por uma etapa anterior, como redimensionar várias imagens carregadas.

'ProcessImages': {
  'Type': 'Map',
  'ItemsPath': '$.imageKeys',
  'MaxConcurrency': 10,
  'Iterator': {
    'StartAt': 'ResizeImage',
    'States': {
      'ResizeImage': {
        'Type': 'Task',
        'Resource': 'arn:aws:lambda:us-east-1:123:function:ResizeImage',
        'End': true
      }
    }
  },
  'Next': 'NotifyComplete'
}

Tratamento de erros: Catch e Retry

Todo estado Task do Step Functions pode ter blocos Retry e Catch para um tratamento resiliente de erros. Retry especifica quais tipos de erro acionam novas tentativas automáticas com IntervalSeconds, MaxAttempts e BackoffRate configuráveis (multiplicador de espera progressiva exponencial). Catch especifica estados de fallback para erros irrecuperáveis. Esse tratamento declarativo de erros evita blocos try/catch repetitivos dentro das funções Lambda.

'ChargeCard': {
  'Type': 'Task',
  'Resource': 'arn:aws:lambda:us-east-1:123:function:ChargeCard',
  'Retry': [{
    'ErrorEquals': ['Lambda.ServiceException', 'States.TaskFailed'],
    'IntervalSeconds': 2,
    'MaxAttempts': 3,
    'BackoffRate': 2.0
  }],
  'Catch': [{
    'ErrorEquals': ['PaymentDeclined'],
    'Next': 'NotifyPaymentFailed',
    'ResultPath': '$.error'
  }],
  'Next': 'FulfillOrder'
}

Estados Wait e Callbacks

Um estado Wait pausa a execução do fluxo de trabalho por uma duração fixa ou até um registro de data e hora específico. Um padrão de Callback (usando .waitForTaskToken) pausa a execução até que um sistema externo chame SendTaskSuccess ou SendTaskFailure com o token. É assim que o Step Functions modela etapas de aprovação humana: envia um e-mail com o token da tarefa, e o fluxo de trabalho é retomado quando uma pessoa clica em um link de aprovação ou rejeição no cliente de e-mail.

# Callback pattern: wait for human approval
'RequestApproval': {
  'Type': 'Task',
  'Resource': 'arn:aws:states:::sqs:sendMessage.waitForTaskToken',
  'Parameters': {
    'QueueUrl': 'https://sqs.us-east-1.amazonaws.com/123/approvals',
    'MessageBody': {
      'taskToken.$': '$$.Task.Token',
      'orderId.$': '$.orderId'
    }
  },
  'Next': 'ProcessApproval'
}

Integração do Step Functions com o EventBridge

As execuções do Step Functions podem ser iniciadas por regras do EventBridge, facilitando o acionamento de fluxos de trabalho em resposta a eventos de serviços da AWS. Por exemplo, um evento ObjectCreated do S3 aciona uma regra do EventBridge que inicia um fluxo de trabalho do Step Functions para processamento de imagens. O Step Functions também pode publicar seus próprios eventos no EventBridge quando as execuções são bem-sucedidas ou falham, permitindo monitoramento e alertas posteriores sem consultar a API do Step Functions periodicamente.

Monitoramento das execuções do Step Functions

O console do Step Functions fornece um diagrama visual de execução do fluxo de trabalho que mostra qual estado foi concluído, qual está em execução e qual falhou — com cores atualizadas em tempo real. Cada execução armazena todo o seu histórico de entrada e saída nos fluxos de trabalho Standard (retenção de 90 dias). Nos fluxos de trabalho Express, os registros são enviados ao CloudWatch Logs. Use o rastreamento do X-Ray para acompanhar a latência de solicitações de ponta a ponta entre funções Lambda e outros serviços chamados no fluxo de trabalho.

# List recent executions and check status
aws stepfunctions list-executions \
  --state-machine-arn arn:aws:states:us-east-1:123456789012:stateMachine:OrderProcessing \
  --status-filter FAILED

# Describe a specific failed execution for debugging
aws stepfunctions describe-execution \
  --execution-arn arn:aws:states:us-east-1:123456789012:execution:OrderProcessing:exec-001

Step Functions vs. SQS vs. EventBridge

Saber quando usar o Step Functions em vez de SQS ou EventBridge é uma decisão comum em exames. Use o Step Functions quando precisar de uma orquestração visível e com estado para um processo com várias etapas, tratamento de erros e ramificações. Use o SQS para mensagens assíncronas confiáveis ponto a ponto entre dois serviços, com novas tentativas por meio do tempo limite de visibilidade. Use o EventBridge para encaminhar eventos a vários assinantes com base em padrões de conteúdo. Um fluxo de trabalho do Step Functions pode integrar os três: aguardar uma mensagem do SQS por meio de um token de tarefa, publicar a conclusão no EventBridge e encadear chamadas de Lambda e do SDK.

Verificação rápida

Teste sua compreensão dos conceitos de AWS Solutions Architect (SAA-C03) desta lição.

Recapitulação da lição

Nesta lição, você aprendeu que: Step Functions orquestra fluxos de trabalho como máquinas de estado com estados Task, Choice, Parallel, Map, Wait e Catch; os fluxos de trabalho Standard oferecem suporte de até 1 ano com histórico completo de execução, enquanto os fluxos de trabalho Express lidam com cargas de trabalho de alta taxa de transferência com duração inferior a 5 minutos; e o padrão Callback com tokens de tarefa permite etapas de aprovação com participação humana. Em seguida, exploraremos Kinesis Data Fluxos para processamento de eventos em tempo real com alta taxa de transferência.

Perguntas Frequentes

A aula “Step Functions: orquestração de fluxos de trabalho sem servidor” é grátis?

Sim — o texto completo de “Step Functions: orquestração de fluxos de trabalho sem servidor” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cloud & IT Cert Prep, atualize para CoddyKit PRO. O curso de Cloud & IT Cert Prep inclui 4 aulas no total.

O que vou aprender em “Step Functions: orquestração de fluxos de trabalho sem servidor”?

Defina fluxos de trabalho com várias etapas como máquinas de estado no Step Functions, trate erros com blocos de captura e repetição e integre integrações nativas do SDK. Você pratica Cloud & IT Cert Prep com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Cloud & IT Cert Prep?

Nenhuma experiência prévia é necessária. Cloud & IT Cert Prep no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Step Functions: orquestração de fluxos de trabalho sem servidor”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Cloud & IT Cert Prep?

Sim. Cada aula de Cloud & IT Cert Prep inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. EventBridge: barramento de eventos e regras
  2. Step Functions: orquestração de fluxos de trabalho sem servidor
  3. Kinesis Data Streams para processamento de eventos em tempo real
  4. Padrões de coreografia versus orquestração
← Voltar para Cloud & IT Cert Prep