Criação de um sistema de processamento de pedidos com funções duráveis do Lambda
nota
NECESSIDADE: adicionar diagrama de arquitetura mostrando o API Gateway, o fluxo de trabalho da função durável e os serviços de suporte (DynamoDB, EventBridge)
Pré-requisitos
AWS CLI instalado e configurado
NECESSIDADE: requisitos específicos de funções duráveis
Crie os arquivos de código-fonte
Criar os seguintes arquivos em seu diretório do projeto:
lambda_function.py: o código da funçãorequirements.txt: manifesto de dependências
Código da função
# NEED: Verify correct imports import boto3 import json def lambda_handler(event, context): # NEED: Verify DurableContext syntax durable = context.durable try: # Validate and store order order = await durable.step('validate', async () => { return validate_order(event['order']) }) # Process payment # NEED: Verify wait syntax await durable.wait(/* wait configuration */) # Additional steps # NEED: Complete implementation except Exception as e: # NEED: Error handling patterns raise e def validate_order(order_data): # NEED: Implementation pass
Arquivo de requisitos
# NEED: List of required packages
Implante o aplicativo
Crie uma tabela do DynamoDB para pedidos
Abra o console do DynamoDB em https://console.aws.amazon.com/dynamodb/
. Escolha Create table
Em Nome da tabela, insira
OrdersEm Chave de partição, insira
orderIdDeixe as outras configurações como o padrão
Escolha Create table
Criar a função do Lambda
Abra o console do Lambda em https://console.aws.amazon.com/lambda/
Escolha Create function (Criar função).
Selecione Criar do zero
Em Nome da função, inserir
ProcessOrderEm Runtime, escolha seu runtime preferido
NECESSIDADE: adicionar configuração específica de funções duráveis
Escolha Create function (Criar função).
Crie o endpoint do API Gateway
Abra o console do API Gateway em https://console.aws.amazon.com/apigateway/
Selecione Criar API
Selecione API de HTTP
Escolha Criar
Adicione uma integração com a sua função do Lambda
Configure rotas para o processamento de pedidos
Implantar a API
Teste o aplicativo
Envie um pedido de teste:
{ "orderId": "12345", "items": [ { "productId": "ABC123", "quantity": 1 } ] }
NECESSIDADE: adicionar instruções de monitoramento específicas para funções duráveis
Próximas etapas
Adicione a lógica de negócios
Implemente o gerenciamento de inventário:
async def check_inventory(order): # Add inventory check logic pass
Adicione os cálculos de preços:
async def calculate_total(order): # Add pricing logic pass
Aprimore o tratamento de erros
Adicione lógica de compensação:
async def reverse_payment(order): # Add payment reversal logic pass
Trate os cancelamentos de pedidos:
async def cancel_order(order): # Add cancellation logic pass
Integre os sistemas externos
async def notify_shipping_provider(order): # Add shipping integration pass async def send_customer_notification(order): # Add notification logic pass
Aprimore o monitoramento
Crie painéis do CloudWatch
Configure métricas para tempos de processamento de pedidos
Configure alertas para pedidos atrasados