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
- ¿Cuáles son sus hipótesis?
- ¿Qué pruebas realiza?
- ¿Qué soluciones propone?
Entregable
Debrief de Solución de Problemas:
- Problemas encontrados
- Método de diagnóstico utilizado
- Soluciones aplicadas
- Lecciones aprendidas
Navegación
- Solución de Problemas Lambda
- Quiz de Validación - 30 preguntas para validar sus conocimientos
- Lab: Solución de Problemas Lambda
Semana siguiente: MÓDULO 13 - Observabilidad