Módulo 6 · Serverless/Lección 40
AWS Lambda: funciones que corren por eventos
Subes una función, defines qué la dispara y AWS la ejecuta las veces que haga falta. Memoria, tiempo, permisos y costos.
AWS Lambda ejecuta un pedazo de código, una función, cada vez que pasa algo: llega una petición HTTP, alguien sube un archivo a S3, cae un mensaje en una cola o se cumple una hora programada. Tú escribes la función y defines qué la dispara. Lambda pone el cómputo, lo escala y lo apaga cuando termina.
Las piezas de una función
Un handler mínimo en Python se ve así:
import json
def handler(event, context):
params = event.get("queryStringParameters") or {}
nombre = params.get("nombre", "mundo")
return {
"statusCode": 200,
"body": json.dumps({"saludo": f"Hola, {nombre}"})
}Qué dispara una función
Hay tres formas de invocar una función, y conviene distinguirlas porque cambian quién reintenta cuando algo falla:
| Criterio | Síncrona | Asíncrona | Por sondeo (poll) |
|---|---|---|---|
| Cómo funciona | Quien llama espera la respuesta | El servicio deja el evento y sigue; Lambda lo procesa después | Lambda revisa la fuente y toma lotes de registros |
| Ejemplos | API Gateway, Application Load Balancer, URL de función | S3, SNS, EventBridge | SQS, Kinesis, DynamoDB Streams |
| Si falla | El error vuelve a quien llamó; él decide si reintenta | Lambda reintenta y puede enviar el evento fallido a un destino o a una DLQ | Depende de la fuente: el mensaje vuelve a la cola o se reintenta el lote |
En el modo por sondeo, Lambda usa un event source mapping: un componente que lee la cola o el stream por ti y llama a la función con lotes. No tienes que escribir el ciclo de lectura.
La configuración que sí decides
- Memoria: eliges cuánta memoria tiene la función y Lambda asigna CPU en proporción. Más memoria es también más CPU, así que a veces subirla hace que la función termine antes y cueste lo mismo o menos.
- Tiempo máximo (timeout): si la función no termina a tiempo, Lambda la corta. Ponlo un poco por encima de lo que tarda normalmente, no en el máximo.
- Rol de ejecución: un rol de IAM con los permisos mínimos. Si la función lee de DynamoDB, el rol necesita permiso para esa tabla; nada más.
- Variables de entorno: configuración que cambia por ambiente, como el nombre de una tabla. Los secretos van en Secrets Manager o Parameter Store, no en texto plano.
- Layers: paquetes de librerías compartidas entre varias funciones, para no repetirlas en cada despliegue.
Concurrencia y arranque en frío
Cada invocación simultánea usa un entorno de ejecución. Si llegan diez peticiones al mismo tiempo, Lambda prepara diez entornos. Ese número de entornos activos es la concurrencia, y tiene un límite por cuenta y región.
Crear un entorno nuevo toma tiempo: descargar el código, iniciar el runtime y correr la inicialización. Ese retraso es el arranque en frío. Luego el entorno queda caliente y atiende las siguientes peticiones más rápido. Si te importa la latencia, existe la concurrencia aprovisionada, que mantiene entornos listos de antemano (y se cobra aunque no se usen). La concurrencia reservada hace otra cosa: le aparta una parte del límite a una función y a la vez le pone tope.
Cómo se cobra
Lambda cobra por dos cosas: el número de peticiones y la duración de cada ejecución, multiplicada por la memoria configurada. Si nadie llama a la función, no pagas cómputo. Por eso la memoria y el tiempo de ejecución son las dos palancas de costo.
15 min
tiempo máximo por invocación (900 segundos)
128 MB – 10 GB
memoria configurable (hasta 10.240 MB)
6 MB
carga útil síncrona, de ida y de vuelta
1.000
ejecuciones concurrentes por región, por defecto
Fuente: AWS Lambda Developer Guide, «Lambda quotas», revisado en noviembre de 2026. La concurrencia se puede aumentar; las cuentas nuevas pueden empezar con cuotas menores.
Para entender qué pasa con las fallas asíncronas, revisa SQS y EventBridge. Para ver los logs de cada invocación, mira CloudWatch.
Quiz
Pon a prueba lo que aprendiste
0 de 5 correctas · 5 sin responder
1.Una tarea de procesamiento tarda unos 40 minutos por ejecución. ¿Por qué no es buena candidata para Lambda?
2.¿Qué ajuste de Lambda aumenta también la CPU disponible para la función?
3.¿Cómo obtiene una función Lambda permiso para escribir en una tabla de DynamoDB?
4.¿Qué se cobra en Lambda?
5.Las primeras peticiones a una función tardan más que las siguientes. ¿Qué explica esto y qué lo reduce?