Saltar al contenido principal

MÓDULO 12 - Lambda: Solución de Problemas y Buenas Prácticas

Visión General​

Este módulo profundiza en la solución de problemas en Lambda y las mejores prácticas. Aprenderá a diagnosticar errores comunes y optimizar sus funciones.

Objetivos de Aprendizaje​

  • Identificar errores comunes de Lambda
  • Diagnosticar problemas de timeout
  • Analizar los logs de CloudWatch de manera eficiente
  • Aplicar las mejores prácticas
  • Optimizar el rendimiento

Contenido de la Semana​

1. Errores Comunes de Lambda​

┌─────────────────────────────────────────────────────────────┐
│ ERRORES COMUNES DE LAMBDA │
├─────────────────────────────────────────────────────────────┤
│ │
│ 1. TIMEOUT │
│ Síntoma: "Task timed out after X seconds" │
│ Causas: │
│ • Procesamiento demasiado largo │
│ • Llamada externa lenta (API, BDD) │
│ • Conexión de red bloqueada │
│ Soluciones: │
│ • Aumentar el timeout (máx 15 min) │
│ • Optimizar el código │
│ • Verificar VPC/Security Groups │
│ │
│ 2. OUT OF MEMORY │
│ Síntoma: "Runtime exited with error" │
│ Causas: │
│ • Datos demasiado voluminosos │
│ • Fuga de memoria │
│ Soluciones: │
│ • Aumentar la memoria │
│ • Streaming en lugar de cargar todo │
│ │
│ 3. PERMISSION DENIED │
│ Síntoma: "AccessDenied" o "not authorized" │
│ Causas: │
│ • Falta de rol IAM │
│ • Policy incorrecta │
│ Soluciones: │
│ • Verificar el rol de ejecución │
│ • Agregar los permisos necesarios │
│ │
│ 4. IMPORT ERROR │
│ Síntoma: "Unable to import module" │
│ Causas: │
│ • Handler mal configurado │
│ • Dependencia faltante │
│ Soluciones: │
│ • Verificar nombre de archivo y handler │
│ • Incluir todas las dependencias │
│ │
└─────────────────────────────────────────────────────────────┘

2. Análisis de Logs de CloudWatch​

Logs de Lambda en CloudWatch:

/aws/lambda/fonction-name
│
├── START RequestId: xxx Version: $LATEST
│ └── Inicio de la ejecución
│
├── [INFO] Sus logs de aplicación (print, logging)
│
├── END RequestId: xxx
│ └── Fin de la ejecución
│
└── REPORT RequestId: xxx
Duration: 123.45 ms
Billed Duration: 200 ms
Memory Size: 128 MB
Max Memory Used: 64 MB
└── ¡Métricas importantes!

Búsqueda útil:
• "ERROR" o "Exception" para los errores
• "Task timed out" para los timeouts
• "Memory" para los problemas de memoria

3. Método de Diagnóstico​

┌─────────────────────────────────────────────────────────────┐
│ DIAGNÓSTICO LAMBDA │
├─────────────────────────────────────────────────────────────┤
│ │
│ 1. Identificar el síntoma │
│ └── ¿Mensaje de error exacto? │
│ │
│ 2. Verificar los logs de CloudWatch │
│ └── ¿Hay una stack trace? │
│ └── ¿Cuál es el último log antes del error? │
│ │
│ 3. Verificar las métricas │
│ └── ¿Duration vs Timeout configurado? │
│ └── ¿Memory Used vs Memory Size? │
│ │
│ 4. Probar localmente │
│ └── Reproducir con los mismos datos │
│ │
│ 5. Verificar la configuración │
│ └── ¿Handler correcto? │
│ └── ¿Variables de entorno? │
│ └── ¿Rol IAM? │
│ │
└─────────────────────────────────────────────────────────────┘

4. Buenas Prácticas​

✅ BUENAS PRÁCTICAS LAMBDA

RENDIMIENTO:
• Inicializar las conexiones fuera del handler (reutilización)
• Usar la memoria adecuada (más memoria = más CPU)
• Minimizar el tamaño del paquete

SEGURIDAD:
• Principio de menor privilegio (IAM)
• Variables de entorno cifradas (KMS)
• No incluir secretos en el código

OBSERVABILIDAD:
• Logging estructurado (JSON)
• Métricas personalizadas si es necesario
• X-Ray para tracing

RESILIENCIA:
• Manejo de errores (try/catch)
• Retries con backoff
• Dead Letter Queue para los fallos

Ejercicio: Challenge de Solución de Problemas​

Escenario​

Una función Lambda falla de manera intermitente. Estos son los síntomas:

  • A veces timeout después de 3 segundos
  • A veces error "Connection refused"
  • Los logs muestran intentos de conexión a una API externa

Preguntas​

  1. ¿Cuáles son sus hipótesis?
  2. ¿Qué pruebas realiza?
  3. ¿Qué soluciones propone?

Entregable​

Debrief de Solución de Problemas:

  • Problemas encontrados
  • Método de diagnóstico utilizado
  • Soluciones aplicadas
  • Lecciones aprendidas
  1. Solución de Problemas Lambda
  2. Quiz de Validación - 30 preguntas para validar sus conocimientos
  3. Lab: Solución de Problemas Lambda

Semana siguiente: MÓDULO 13 - Observabilidad