Saltar al contenido
aprendeaws.dev

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.

Al terminar podrás

  • →Explicar el ciclo de vida de una invocación de Lambda
  • →Configurar memoria, tiempo máximo, rol y disparadores
  • →Reconocer los límites de Lambda y el arranque en frío

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

PiezaQué es
FunciónTu código más su configuraciónSe identifica con un ARN
RuntimeEl lenguaje y su entornoNode.js, Python, Java, .NET, Ruby, o uno propio
HandlerEl punto de entrada que Lambda llamaRecibe el evento y el contexto
EventoUn documento JSON con lo que pasóSu forma depende de quién dispara la función
Rol de ejecuciónRol de IAM que la función asumeDefine a qué servicios puede llamar

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:

CriterioSíncronaAsíncronaPor sondeo (poll)
Cómo funcionaQuien llama espera la respuestaEl servicio deja el evento y sigue; Lambda lo procesa despuésLambda revisa la fuente y toma lotes de registros
EjemplosAPI Gateway, Application Load Balancer, URL de funciónS3, SNS, EventBridgeSQS, Kinesis, DynamoDB Streams
Si fallaEl error vuelve a quien llamó; él decide si reintentaLambda reintenta y puede enviar el evento fallido a un destino o a una DLQDepende 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. 1.Una tarea de procesamiento tarda unos 40 minutos por ejecución. ¿Por qué no es buena candidata para Lambda?

  2. 2.¿Qué ajuste de Lambda aumenta también la CPU disponible para la función?

  3. 3.¿Cómo obtiene una función Lambda permiso para escribir en una tabla de DynamoDB?

  4. 4.¿Qué se cobra en Lambda?

  5. 5.Las primeras peticiones a una función tardan más que las siguientes. ¿Qué explica esto y qué lo reduce?