Quiz de Validación - MÓDULO 12
Este quiz de 30 preguntas le permite validar sus conocimientos sobre la resolución de problemas en Lambda antes de pasar al laboratorio práctico.
Pregunta 1
¿Dónde encontrar los logs de una función Lambda?
A) En S3
B) En CloudWatch Logs, grupo /aws/lambda/nombre-función
C) En la instancia EC2
D) En DynamoDB
Ver la respuesta
Respuesta: B
Los logs de Lambda se envían automáticamente a CloudWatch Logs en el grupo /aws/lambda/nombre-de-la-función. Cada contenedor de ejecución crea un log stream. Verifique que la función tenga permisos para CloudWatch Logs.
Pregunta 2
¿Qué significa el error "Task timed out"?
A) La conexión de red expiró
B) La función superó su timeout configurado
C) El trigger expiró
D) La API expiró
Ver la respuesta
Respuesta: B
"Task timed out after X seconds" significa que la función no terminó en el tiempo configurado (timeout). Soluciones: aumentar el timeout (máx. 15 min), optimizar el código, o investigar por qué la ejecución es lenta (espera de red, base de datos).
Pregunta 3
¿Cómo aumentar el timeout de una función Lambda?
A) No es configurable
B) En la configuración de la función, modificar el parámetro Timeout (máx. 15 min)
C) Solo vía código
D) Contactando a AWS
Ver la respuesta
Respuesta: B
El timeout es configurable en los parámetros de la función: consola, CLI o plantilla CloudFormation/SAM. El valor máximo es 900 segundos (15 minutos). Adáptelo según el tiempo real necesario más un margen.
Pregunta 4
¿Qué indica el error "out of memory"?
A) El disco está lleno
B) La función superó la memoria asignada
C) CloudWatch no tiene almacenamiento
D) S3 está lleno
Ver la respuesta
Respuesta: B
"Runtime exited with error: signal: killed" o "Memory Size: X MB Max Memory Used: X MB" indica que la función usó toda su memoria. Solución: aumentar la memoria asignada u optimizar el código para usar menos memoria.
Pregunta 5
¿Cómo saber cuánta memoria utiliza una función?
A) No es medible
B) En los logs de CloudWatch "REPORT" o en las métricas "Max Memory Used"
C) Vía código
D) En la consola EC2
Ver la respuesta
Respuesta: B
Cada invocación genera una línea REPORT en los logs: "Memory Size: 128 MB Max Memory Used: 85 MB". La métrica de CloudWatch "MaxMemoryUsed" también muestra este valor. Si está cerca del límite, aumente la memoria.
Pregunta 6
¿Qué es el error "Access Denied" en Lambda?
A) Acceso denegado a la consola
B) La función no tiene permisos IAM para acceder a un recurso
C) La contraseña es incorrecta
D) El VPC está bloqueado
Ver la respuesta
Respuesta: B
"Access Denied" significa que el rol IAM de la función no tiene los permisos necesarios. Verifique que el rol tenga las policies para acceder a S3, DynamoDB, SQS u otro servicio utilizado por el código.
Pregunta 7
¿Cómo diagnosticar errores de permisos en Lambda?
A) Esperar a que desaparezcan
B) Verificar los logs para el error exacto, luego ajustar las policies IAM del rol
C) Recrear la función
D) Contactar a AWS
Ver la respuesta
Respuesta: B
Lea los logs de CloudWatch para identificar el recurso y la acción denegados. Verifique el rol IAM de la función. Añada la policy necesaria (ej: s3:GetObject). Pruebe de nuevo. Use IAM Policy Simulator para validar.
Pregunta 8
Una función Lambda en un VPC no puede acceder a Internet. ¿Por qué?
A) Es normal
B) Lambda en un VPC requiere un NAT Gateway para el acceso a Internet
C) El Security Group bloquea
D) Los logs no funcionan
Ver la respuesta
Respuesta: B
Lambda en un VPC utiliza ENI en subnets privadas. Para acceder a Internet, configure un NAT Gateway en un subnet público y una ruta 0.0.0.0/0 hacia el NAT en la tabla de ruteo de los subnets de Lambda.
Pregunta 9
Una función Lambda en un VPC no puede acceder a DynamoDB. ¿Qué hacer?
A) Eliminar el VPC
B) Usar un VPC Endpoint para DynamoDB o configurar un NAT Gateway
C) Cambiar de región
D) Aumentar la memoria
Ver la respuesta
Respuesta: B
DynamoDB es un servicio público. Una Lambda en VPC necesita un NAT Gateway (costoso) o un VPC Endpoint Gateway para DynamoDB (gratuito y recomendado). El VPC Endpoint permite el acceso privado sin pasar por Internet.
Pregunta 10
¿Qué es el error "Handler not found"?
A) El handler no se encuentra
B) El nombre del handler configurado no corresponde a la función en el código
C) El archivo no existe
D) La memoria es insuficiente
Ver la respuesta
Respuesta: B
Este error significa que Lambda no encuentra el handler especificado. Verifique: el formato (archivo.método), el nombre del archivo (ej: lambda_function.py), el nombre del método, y que el archivo esté en la raíz del paquete.
Pregunta 11
¿Cómo se formatea el handler en Python?
A) handler.py
B) archivo.función (ej: lambda_function.lambda_handler)
C) lambda.handler
D) handler()
Ver la respuesta
Respuesta: B
En Python, el formato es: nombre_archivo.nombre_función. El valor por defecto es lambda_function.lambda_handler, por lo tanto, un archivo lambda_function.py con una función def lambda_handler(event, context). Ajuste según su estructura.
Pregunta 12
¿Qué es el error "Module not found"?
A) Falta el módulo AWS
B) Una dependencia requerida por el código no está incluida en el paquete
C) Python no está instalado
D) El handler es incorrecto
Ver la respuesta
Respuesta: B
"Unable to import module" o "Module not found" significa que una biblioteca usada en el código no está en el paquete de despliegue. Incluya las dependencias en el ZIP o use Lambda Layers.
Pregunta 13
¿Cómo incluir dependencias de Python en Lambda?
A) Instalarlas globalmente
B) pip install en una carpeta, incluirla en el ZIP de despliegue o usar Layers
C) Automáticamente incluidas
D) Vía la consola
Ver la respuesta
Respuesta: B
Cree una carpeta, instale las dependencias: pip install requests -t ./package/, agregue su código, comprima todo. O use Lambda Layers para dependencias compartidas. SAM y CDK automatizan este proceso.
Pregunta 14
¿Qué es el "cold start" y cómo detectarlo?
A) Un bug de Lambda
B) Retardo de inicialización visible por una "Init Duration" en los logs REPORT
C) Un error de timeout
D) Un problema de memoria
Ver la respuesta
Respuesta: B
El cold start aparece en los logs: "Init Duration: X ms" solo está presente durante los cold starts. La métrica "Duration" incluye este tiempo. Las siguientes invocaciones (warm) no tienen Init Duration.
Pregunta 15
Una función retorna un error 502 vía API Gateway. ¿Qué verificar?
A) Solo API Gateway
B) Los logs de Lambda para el error real, el formato de respuesta de Lambda
C) Route 53
D) CloudFront
Ver la respuesta
Respuesta: B
502 desde API Gateway suele significar que Lambda devolvió una respuesta mal formateada o falló. Verifique los logs de Lambda para el error. Asegúrese de que la respuesta siga el formato esperado por API Gateway (statusCode, body, headers).
Pregunta 16
¿Qué formato de respuesta Lambda espera API Gateway?
A) Texto simple
B) JSON con statusCode, headers, body
C) XML
D) HTML
Ver la respuesta
Respuesta: B
El formato esperado es un objeto JSON con statusCode (200), headers (Content-Type: application/json), y body (un string JSON). El body debe ser un string, no un objeto. Una respuesta mal formateada causa un error 502.
Pregunta 17
¿Cómo depurar una función Lambda en producción?
A) Conectarse al servidor
B) Analizar los logs de CloudWatch, activar X-Ray para el tracing
C) Modificar el código en producción
D) Esperar las quejas
Ver la respuesta
Respuesta: B
Utilice CloudWatch Logs para los mensajes de error. Active AWS X-Ray para trazar las solicitudes a través de los servicios (latencia, errores). CloudWatch Insights permite consultas sobre los logs. Añada logging estructurado en el código.
Pregunta 18
¿Qué es AWS X-Ray para Lambda?
A) Una radiografía de los servidores
B) Un servicio de tracing distribuido que muestra el recorrido de las solicitudes
C) Un antivirus
D) Una herramienta de backup
Ver la respuesta
Respuesta: B
AWS X-Ray traza las solicitudes a través de Lambda y otros servicios (API Gateway, DynamoDB, S3). Muestra un mapa de los servicios, las latencias, y ayuda a identificar cuellos de botella y errores.
Pregunta 19
Una función falla de manera intermitente. ¿Qué verificar?
A) Solo el código
B) Los logs para patrones, timeouts, cold starts, throttles
C) Nada, es normal
D) El Security Group
Ver la respuesta
Respuesta: B
Las fallas intermitentes pueden deberse a: timeouts (recursos externos lentos), cold starts (fallo en la inicialización), throttling (límites de concurrencia), recursos externos no disponibles, o conexiones cerradas (connection pooling).
Pregunta 20
¿Qué es el "throttling" en Lambda?
A) Limitación de velocidad del código
B) Rechazo de invocaciones porque se alcanzó el límite de concurrencia
C) Compresión de datos
D) Limitación de memoria
Ver la respuesta
Respuesta: B
El throttling ocurre cuando la función alcanza su límite de concurrencia (reservado o regional). Las invocaciones adicionales son rechazadas con un error 429 (TooManyRequestsException). Aumente los límites o implemente una cola.
Pregunta 21
¿Cómo detectar si Lambda está siendo throttle?
A) Imposible de detectar
B) Métrica de CloudWatch "Throttles", error 429 en los logs de los llamadores
C) Vía código
D) En EC2
Ver la respuesta
Respuesta: B
La métrica de CloudWatch "Throttles" cuenta las invocaciones rechazadas. El llamador recibe un error 429 TooManyRequestsException. Monitoree esta métrica y cree alarmas para detectar problemas de capacidad.
Pregunta 22
¿Qué es la Dead Letter Queue (DLQ) y cuándo se utiliza?
A) Una cola de mensajes muertos
B) Un destino para los eventos fallidos después de todos los reintentos (invocación asíncrona)
C) Una cola de respaldo
D) Una cola de prioridad
Ver la respuesta
Respuesta: B
La DLQ recibe los eventos que fallaron después de los reintentos automáticos (2 para async). Configure una SQS o SNS como DLQ. Analice estos mensajes para entender y corregir los fallos.
Pregunta 23
¿Cómo configurar los reintentos para Lambda?
A) Solo vía código
B) Depende del tipo de invocación: configurable para async, automático para streams
C) Sin reintentos
D) Vía IAM
Ver la respuesta
Respuesta: B
Invocaciones async: 2 reintentos por defecto (configurable 0-2), con backoff exponencial. Streams (Kinesis, DynamoDB): reintenta hasta que expiren los datos o haya éxito. Sincrónica: sin reintento automático, el llamador gestiona.
Pregunta 24
Una función Lambda es muy lenta. ¿Qué verificar primero?
A) El nombre de la función
B) Los logs REPORT para Duration, Memory Used y las llamadas externas
C) El trigger
D) La región
Ver la respuesta
Respuesta: B
Analice los logs REPORT: Duration (tiempo total), Billed Duration, Memory Used. Si está cerca del límite de memoria, aumente la memoria. Verifique las llamadas externas (base de datos, API) que pueden ser lentas. Use X-Ray para más detalle.
Pregunta 25
¿Aumentar la memoria de Lambda afecta la velocidad?
A) No
B) Sí, más memoria = más CPU = ejecución potencialmente más rápida
C) La ralentiza
D) Solo para Java
Ver la respuesta
Respuesta: B
El CPU se asigna proporcionalmente a la memoria. Con 1,769 MB, obtiene 1 vCPU completo. Más memoria significa más potencia de cálculo, lo que puede reducir el tiempo de ejecución e incluso el costo total.
Pregunta 26
¿Cómo probar una función Lambda localmente?
A) Imposible
B) AWS SAM CLI, LocalStack, o ejecutando el archivo Python/Node directamente
C) Solo en producción
D) Vía EC2
Ver la respuesta
Respuesta: B
Pruebe localmente con: AWS SAM CLI (sam local invoke), LocalStack para emular Lambda, o ejecute directamente su función con un evento mock. Esto acelera el ciclo de desarrollo antes del despliegue.
Pregunta 27
¿Qué es el error "ECONNREFUSED" en Lambda?
A) Conexión rechazada por Lambda
B) La función no puede conectarse a un servicio externo (endpoint inaccesible)
C) Error de permisos
D) Timeout de Lambda
Ver la respuesta
Respuesta: B
ECONNREFUSED significa que la conexión fue rechazada por el endpoint de destino. Causas: URL/puerto incorrecto, servicio no iniciado, Security Group bloqueando, problema de ruteo VPC, o servicio externo caído.
Pregunta 28
¿Qué es el error "socket timeout" en Lambda?
A) El socket está roto
B) La conexión a un servicio externo tarda demasiado (sin respuesta)
C) Lambda expiró
D) El VPC está mal configurado
Ver la respuesta
Respuesta: B
Socket timeout significa que el servicio externo no responde en el tiempo configurado del cliente HTTP. Causas: servicio lento o sobrecargado, problema de red, Security Group/NACL bloqueando, o mala configuración del timeout del cliente.
Pregunta 29
¿Cómo ver los errores de una función Lambda en tiempo real?
A) Imposible
B) CloudWatch Logs Live Tail, CloudWatch Logs Insights, o aws logs tail
C) Vía email
D) En S3
Ver la respuesta
Respuesta: B
Utilice CloudWatch Logs Insights para consultas en tiempo real, "Live Tail" en la consola para transmitir los logs, o aws logs tail /aws/lambda/nombre-función --follow para seguir desde el CLI.
Pregunta 30
¿Cuál es la mejor práctica para el logging en Lambda?
A) No registrar logs
B) Usar JSON estructurado, incluir requestId, niveles de log y contexto útil
C) Registrar todo
D) Solo los errores
Ver la respuesta
Respuesta: B
Mejores prácticas: use JSON estructurado para facilitar las consultas, incluya el requestId (context.aws_request_id) para rastrear, use niveles (INFO, ERROR), registre el contexto útil sin datos sensibles, y evite logs excesivos (costo).
Resultado
Cuente sus respuestas correctas:
- 27-30: Excelente - Usted domina la resolución de problemas en Lambda
- 22-26: Bien - Algunos puntos a revisar
- 17-21: Medio - Repase el curso antes del laboratorio
- Menos de 17: Insuficiente - Repase el curso desde el principio
Pase al Lab Resolución de Problemas Lambda una vez que haya alcanzado al menos 22 respuestas correctas.