Pular para o conteúdo principal

MÓDULO 12 - Lambda: Solução de Problemas e Boas Práticas

Visão Geral​

Este módulo aprofunda a solução de problemas em Lambda e as melhores práticas. Você aprenderá a diagnosticar erros comuns e otimizar suas funções.

Objetivos de Aprendizagem​

  • Identificar erros comuns em Lambda
  • Diagnosticar problemas de timeout
  • Analisar logs do CloudWatch de forma eficiente
  • Aplicar as melhores práticas
  • Otimizar o desempenho

Conteúdo da Semana​

1. Erros Comuns em Lambda​

┌─────────────────────────────────────────────────────────────┐
│ ERROS COMUNS EM LAMBDA │
├─────────────────────────────────────────────────────────────┤
│ │
│ 1. TIMEOUT │
│ Sintoma: "Task timed out after X seconds" │
│ Causas: │
│ • Processamento muito demorado │
│ • Chamada externa lenta (API, banco de dados) │
│ • Conexão de rede bloqueada │
│ Soluções: │
│ • Aumentar o timeout (máx 15 min) │
│ • Otimizar o código │
│ • Verificar VPC/Security Groups │
│ │
│ 2. OUT OF MEMORY │
│ Sintoma: "Runtime exited with error" │
│ Causas: │
│ • Dados muito volumosos │
│ • Vazamento de memória │
│ Soluções: │
│ • Aumentar a memória │
│ • Usar streaming ao invés de carregar tudo │
│ │
│ 3. PERMISSION DENIED │
│ Sintoma: "AccessDenied" ou "not authorized" │
│ Causas: │
│ • Falta de role IAM │
│ • Policy incorreta │
│ Soluções: │
│ • Verificar o role de execução │
│ • Adicionar as permissões necessárias │
│ │
│ 4. IMPORT ERROR │
│ Sintoma: "Unable to import module" │
│ Causas: │
│ • Handler mal configurado │
│ • Dependência ausente │
│ Soluções: │
│ • Verificar nome do arquivo e handler │
│ • Incluir todas as dependências │
│ │
└─────────────────────────────────────────────────────────────┘

2. Análise de Logs do CloudWatch​

Logs Lambda no CloudWatch:

/aws/lambda/fonction-name
│
├── START RequestId: xxx Version: $LATEST
│ └── Início da execução
│
├── [INFO] Seus logs de aplicação (print, logging)
│
├── END RequestId: xxx
│ └── Fim da execução
│
└── REPORT RequestId: xxx
Duration: 123.45 ms
Billed Duration: 200 ms
Memory Size: 128 MB
Max Memory Used: 64 MB
└── Métricas importantes!

Busca útil:
• "ERROR" ou "Exception" para erros
• "Task timed out" para timeouts
• "Memory" para problemas de memória

3. Método de Diagnóstico​

┌─────────────────────────────────────────────────────────────┐
│ DIAGNÓSTICO LAMBDA │
├─────────────────────────────────────────────────────────────┤
│ │
│ 1. Identificar o sintoma │
│ └── Mensagem de erro exata? │
│ │
│ 2. Verificar os logs do CloudWatch │
│ └── Existe uma stack trace? │
│ └── Qual é o último log antes do erro? │
│ │
│ 3. Verificar as métricas │
│ └── Duração vs Timeout configurado? │
│ └── Memória usada vs Memória alocada? │
│ │
│ 4. Testar localmente │
│ └── Reproduzir com os mesmos dados │
│ │
│ 5. Verificar a configuração │
│ └── Handler correto? │
│ └── Variáveis de ambiente? │
│ └── Role IAM? │
│ │
└─────────────────────────────────────────────────────────────┘

4. Boas Práticas​

✅ BOAS PRÁTICAS LAMBDA

DESEMPENHO:
• Inicializar conexões fora do handler (reutilização)
• Usar a memória adequada (mais memória = mais CPU)
• Minimizar o tamanho do pacote

SEGURANÇA:
• Princípio do menor privilégio (IAM)
• Variáveis de ambiente criptografadas (KMS)
• Nunca coloque segredos no código

OBSERVABILIDADE:
• Logging estruturado (JSON)
• Métricas customizadas se necessário
• X-Ray para tracing

RESILIÊNCIA:
• Tratamento de erros (try/catch)
• Retries com backoff
• Dead Letter Queue para falhas

Exercício: Desafio de Solução de Problemas​

Cenário​

Uma função Lambda falha de forma intermitente. Veja os sintomas:

  • Às vezes timeout após 3 segundos
  • Às vezes erro "Connection refused"
  • Os logs mostram tentativas de conexão com uma API externa

Perguntas​

  1. Quais são suas hipóteses?
  2. Quais testes você realiza?
  3. Quais soluções você propõe?

Entregável​

Debrief de Solução de Problemas:

  • Problemas encontrados
  • Método de diagnóstico utilizado
  • Soluções aplicadas
  • Lições aprendidas
  1. Solução de Problemas Lambda
  2. Quiz de Validação - 30 questões para validar seus conhecimentos
  3. Lab: Solução de Problemas Lambda

Próxima semana: MÓDULO 13 - Observabilidade