image

Acesso vitalício ao Atalho Secreto + bootcamps ilimitados

86
%OFF
Article image
Marcio Gil
Marcio Gil06/11/2025 15:36
Compartilhe
Microsoft Certification Challenge #5 - DP 100Recomendados para vocêMicrosoft Certification Challenge #5 - DP 100

🛒 Workflow de Processamento de Pedidos de E-commerce com AWS Step Functions

    Meu primeiro projeto em AWS

    📑 Sumário

    1. Sobre o Projeto
    2. Estrutura do Projeto
    3. Detalhes Técnicos
    4. Implantação
    5. Como Executar
    6. Apresentação
    7. Links

    Sobre o Projeto

    Este projeto demonstra um fluxo de trabalho de processamento de pedidos de e-commerce utilizando AWS Step Functions para orquestrar diferentes serviços AWS — especialmente AWS Lambda — simulando um ambiente real de automação empresarial.

    A proposta deste projeto é reproduzir, de forma simples e didática, como um fluxo empresarial pode ser automatizado através de uma máquina de estados. O objetivo é mostrar como a computação em nuvem pode ser usada para estruturar sistemas que exigem organização, tomada de decisão, resiliência e execução confiável.

    🗂️ Estrutura do Projeto

    stepfuntion/
    ├── infra/
    │   ├── cloudformation.yaml   # Infraestrutura como código (AWS CloudFormation)
    │   └── workflow.asl.json     # Definição do workflow Step Functions (ASL)
    ├── README.md                 # Documentação do projeto
    

    Fluxo resumido: Pedido → [Validar Pedido] → [Escolher Processamento] ├─(VALID)─> [Processar Pagamento] → [Enviar para Expedição] → [Sucesso] └─(INVALID)─> [Falha]

    ⚙️ Detalhes Técnicos

    A solução utiliza um fluxo sequencial e condicional, garantindo que cada etapa seja processada com segurança.

    Etapa (State)TipoFunçãoValidar PedidoTask (AWS Lambda)Verifica integridade e validade do pedido.Escolher ProcessamentoChoiceDecide o caminho com base no status (VALID / INVALID).Processar PagamentoTask (AWS Lambda)Simula a cobrança quando o pedido é válido.Enviar para ExpediçãoTask (AWS Lambda)Simula preparação e envio do produto.Sucesso no PedidoSucceedEstado final positivo.Falha no PedidoFailEstado final negativo.

    Definição do Workflow (ASL – Amazon States Language) Arquivo: infra/workflow.asl.json

    {
    "Comment": "Workflow de Processamento de Pedidos de E-commerce",
    "StartAt": "Validar Pedido",
    "States": {
      "Validar Pedido": {
        "Type": "Task",
        "Resource": "arn:aws:lambda:REGION:ACCOUNT_ID:function:ValidateOrderLambda",
        "Next": "Escolher Processamento"
      },
      "Escolher Processamento": {
        "Type": "Choice",
        "Choices": [
          {
            "Variable": "$.status",
            "StringEquals": "VALID",
            "Next": "Processar Pagamento"
          },
          {
            "Variable": "$.status",
            "StringEquals": "INVALID",
            "Next": "Falha no Pedido"
          }
        ],
        "Default": "Falha no Pedido"
      },
      "Processar Pagamento": {
        "Type": "Task",
        "Resource": "arn:aws:lambda:REGION:ACCOUNT_ID:function:ProcessPaymentLambda",
        "Next": "Enviar para Expedição"
      },
      "Enviar para Expedição": {
        "Type": "Task",
        "Resource": "arn:aws:lambda:REGION:ACCOUNT_ID:function:ShipOrderLambda",
        "Next": "Sucesso no Pedido"
      },
      "Sucesso no Pedido": {
        "Type": "Succeed"
      },
      "Falha no Pedido": {
        "Type": "Fail",
        "Cause": "O pedido não pôde ser processado.",
        "Error": "OrderProcessingFailed"
      }
    }
    }
    

    Arquivo principal: infra/cloudformation.yaml Ao implantar a stack, são criados automaticamente:

    • 3 Lambdas simples (inline em Python)
    • Roles IAM para execução
    • Step Function integrada aos ARNs das Lambdas
    • Máquina de estados pronta para uso

    Pré-requisitos:

    • Conta AWS com permissões para CloudFormation, Lambda e Step Functions
    • AWS CLI configurado

    Implantação:

    aws cloudformation deploy \
    --template-file infra/cloudformation.yaml \
    --stack-name StepFunctionEcommerce \
    --capabilities CAPABILITY_IAM
    

    ▶️ Como Executar

    1. Implemente a stack conforme acima.
    2. Acesse o AWS Step Functions e inicie uma execução na máquina de estados criada.
    3. Forneça um payload de pedido para testar o fluxo.
    4. Monitore o resultado e os logs das Lambdas.

    Exemplo de payload:

    {
    "orderId": "12345",
    "amount": 199.90,
    "items": ["produtoA", "produtoB"]
    }
    

    👤 Apresentação

    Sou um apaixonado por educação, tecnologia e inovação social. Acredito profundamente que o conhecimento transforma vidas, abre portas e reduz desigualdades — especialmente para quem nem sempre teve acesso às mesmas oportunidades. Como estudante de Engenharia de Software, busco sempre unir teoria e prática, desenvolvendo projetos que não servem apenas como código, mas como aprendizado, evolução e compreensão real do impacto que a tecnologia pode gerar. Este projeto com AWS Step Functions nasceu exatamente desse espírito: aprender construindo. Ao simular um sistema completo de processamento de pedidos de e-commerce, pude entender, de maneira objetiva e humana, como fluxos automatizados podem tornar operações mais organizadas, seguras e eficientes. Na DIO encontrei um ambiente que incentiva o aprendizado contínuo, a troca de conhecimento e o crescimento coletivo. Sigo caminhando com humildade, propósito e vontade de contribuir com uma comunidade tech mais inclusiva, colaborativa e humana.

    🌐 Links

    Compartilhe
    Recomendados para você
    Riachuelo - Cibersegurança
    Microsoft Certification Challenge #5 - AZ-204
    Microsoft Certification Challenge #5 - DP 100
    Comentários (2)
    Marcio Gil
    Marcio Gil - 06/11/2025 19:26

    Muito obrigado pelo comentário generoso! Para mim, que estou dando meus primeiros passos na AWS, depois de alguns experimentos iniciais em Azure, trabalhar com Step Functions já foi revelador. E, justamente por estar vivendo essa transição, enxergo que o maior desafio ao migrar um sistema de core banking para uma arquitetura cloud-native não é apenas técnico, mas cultural e regulatório.

    A meu ver, o ponto mais crítico está em equilibrar segurança, conformidade e governança com a velocidade que a nuvem oferece. Em ambientes financeiros, cada decisão precisa ser auditável, consistente e alinhada a normas rígidas como LGPD, PCI DSS, segregação de funções e trilhas de auditoria. A arquitetura serverless, por mais poderosa que seja, exige uma maturidade profunda em observabilidade, identidade, políticas de acesso e automação segura, para garantir que o workflow seja resiliente sem perder rastreabilidade.

    Ainda estou no início dessa jornada, aprendendo com humildade, mas já percebo que a migração de core banking é menos sobre custos e mais sobre confiança, compliance e responsabilidade arquitetural. E é exatamente por isso que estudar projetos como esse tem sido tão transformador para mim.

    DIO Community
    DIO Community - 06/11/2025 15:43

    Excelente, Marcio! Que artigo cirúrgico, inspirador e de altíssimo valor técnico! Você tocou no ponto crucial da Arquitetura Serverless: a orquestração de workflows com AWS Step Functions é a chave para a automação empresarial e a resiliência.

    É fascinante ver como você aborda o tema, mostrando que seu Workflow de Processamento de Pedidos de E-commerce é o modelo ideal para a migração de transações críticas (como as do setor financeiro).

    Qual você diria que é o maior desafio para um desenvolvedor ao migrar um sistema de core banking para uma arquitetura cloud-native, em termos de segurança e de conformidade com as regulamentações, em vez de apenas focar em custos?

    Recomendados para vocêMicrosoft Certification Challenge #5 - DP 100