AWS Lambda te permite ejecutar código sin configurar ni administrar ningún servidor, y solo pagas por el tiempo exacto que tu código corre.
Imagina que tienes una tienda en línea
Vendes artículos por internet, como muchos negocios en México que usan Mercado Libre. Cada vez que un cliente sube una foto de su producto, necesitas convertirla a un tamaño más pequeño. ¿Vas a mantener un servidor encendido las 24 horas solo para eso? Con Lambda, el código se activa solo cuando alguien sube la foto. Cuando no hay fotos, no gastas nada.
Este es el poder del modelo "sin servidor" o serverless: tu código existe, pero el servidor que lo corre aparece y desaparece en milisegundos.
El Modelo de Ejecución por Eventos
Lambda funciona con un principio muy simple llamado Ejecución por Eventos. Algo sucede en el mundo digital, Lambda despierta, corre tu código, y vuelve a dormirse.
Esos "algo" se llaman disparadores o triggers. Los más comunes en AWS son:
- API Gateway: alguien llama a una URL de tu aplicación.
- S3: alguien sube un archivo a un bucket.
- DynamoDB Streams: un registro cambia en tu base de datos.
- CloudWatch Events: un reloj programado llega a cierta hora.
- SNS / SQS: llega un mensaje a una cola o tema.
Cada vez que ocurre uno de estos eventos, Lambda crea un entorno de ejecución limpio, corre tu función, y lo destruye. No hay servidor que "calentar" ni parches de seguridad que aplicar.
¿Cómo se ve una función Lambda por dentro?
Una función Lambda es simplemente una función de código normal. AWS acepta Python, Node.js, Java, Go, Ruby y otros lenguajes. El único requisito es que tu función tenga un punto de entrada específico.
En Python, ese punto de entrada se llama lambda_handler y siempre recibe dos parámetros: event y context.
import json
def lambda_handler(event, context):
nombre = event.get("nombre", "cliente")
saludo = f"Hola, {nombre}. Bienvenido a la tienda."
return {
"statusCode": 200,
"body": json.dumps({"mensaje": saludo})
}
event: contiene toda la información del disparador. Si vino de API Gateway, aquí están los parámetros de la URL.context: contiene información sobre la ejecución, como cuánto tiempo de vida le queda a la función.- El
return: es la respuesta que Lambda envía de vuelta al servicio que la llamó.
Si alguien llama a esta función enviando {"nombre": "Sofía"}, la respuesta será "Hola, Sofía. Bienvenido a la tienda."
Tres Casos Reales en México
Caso 1 — Generación de facturas en CFDI
Una empresa de distribución en Guadalajara genera facturas electrónicas cada vez que confirma un pedido. Sin Lambda, necesitarían un servidor corriendo todo el día. Con Lambda, una función se activa cuando el sistema de ventas registra un pedido nuevo. La función llama al SAT, genera el CFDI y lo envía al correo del cliente. Todo en menos de dos segundos.
Caso 2 — Procesamiento de imágenes para Liverpool
Imagina que Liverpool necesita mostrar imágenes de productos en tres tamaños: miniatura, mediano y grande. Cuando el equipo de fotografía sube la imagen original a S3, Lambda detecta el evento y genera automáticamente los tres tamaños. Los guarda en otra carpeta del mismo bucket. El sitio web los usa sin intervención humana.
Caso 3 — Alertas de inventario para FEMSA
FEMSA maneja miles de puntos de venta. Si el inventario de cierto producto baja de 50 unidades, necesitan una alerta inmediata. Una función Lambda revisa DynamoDB cada cinco minutos gracias a CloudWatch Events. Si detecta inventario bajo, envía un mensaje por SNS al equipo de logística. El proceso cuesta menos que un café al mes.
Cómo Crear tu Primera Función Lambda (paso a paso)
Sigue estos pasos desde la consola de AWS:
Paso 1 — Abre Lambda Entra a la consola de AWS y busca "Lambda" en el buscador superior. Haz clic en "Crear función".
Paso 2 — Elige "Crear desde cero"
Dale un nombre a tu función, por ejemplo mi-primera-funcion. Selecciona Python 3.12 como lenguaje.
Paso 3 — Asigna un rol IAM AWS te preguntará qué permisos tiene esta función. Recuerda la lección anterior: usa el principio de mínimo privilegio. Si tu función solo necesita escribir en S3, dale solo ese permiso. AWS puede crear un rol básico automáticamente para empezar.
Paso 4 — Escribe el código
En el editor que aparece, borra el código de ejemplo y escribe tu función. Usa el ejemplo del lambda_handler que vimos arriba.
Paso 5 — Crea un evento de prueba Haz clic en "Probar" y crea un evento de prueba con este JSON:
{"nombre": "Carlos"}
Luego ejecuta la prueba. Deberías ver la respuesta con el saludo personalizado.
Paso 6 — Revisa los logs
Lambda guarda los registros de ejecución en CloudWatch Logs automáticamente. Ahí puedes ver errores, tiempos de ejecución y cualquier mensaje que hayas impreso con print().
¿Cuánto Cuesta Lambda?
Lambda cobra por dos cosas: número de solicitudes y tiempo de ejecución.
- Solicitudes: el primer millón de solicitudes al mes es gratis. Después, $0.20 por cada millón adicional.
- Tiempo de ejecución: se cobra por el tiempo que corre tu función, medido en milisegundos, multiplicado por la memoria que asignaste.
Para una startup mexicana con 500,000 usuarios al mes, Lambda puede costar menos de $200 al mes. Un servidor EC2 equivalente podría costar $3,000 o más, sin contar el tiempo del equipo para administrarlo.
Esto hace que Lambda sea ideal para proyectos que crecen rápido o que tienen tráfico variable, como una aplicación que recibe miles de pedidos en El Buen Fin y casi ninguno en martes de enero.
Límites que Debes Conocer
Lambda no es la solución para todo. Tiene límites importantes:
| Límite | Valor máximo |
|---|---|
| Tiempo de ejecución | 15 minutos |
| Memoria RAM | 10,240 MB |
| Tamaño del paquete de código | 250 MB (descomprimido) |
Almacenamiento temporal (/tmp) |
512 MB (hasta 10 GB con config.) |
Si tu proceso tarda más de 15 minutos, Lambda no es la herramienta correcta. Para esos casos, AWS ofrece servicios como AWS Batch o EC2. Lambda brilla en tareas cortas, reactivas y frecuentes.
Errores Comunes al Empezar con Lambda
Error 1 — No revisar los logs Muchos principiantes ven un error y no saben por qué. CloudWatch Logs tiene toda la información. Siempre empieza por ahí.
Error 2 — Dar permisos de administrador al rol de Lambda Recuerda la lección de IAM: mínimo privilegio. Si tu función solo lee de S3, no le des acceso a toda la cuenta. Un error en el código podría tener consecuencias graves.
Error 3 — No manejar excepciones
Si tu código falla sin capturar errores, Lambda marca la ejecución como fallida y no tienes contexto de qué pasó. Usa bloques try/except en Python para capturar y registrar los errores con print().
Error 4 — Poner credenciales en el código Nunca escribas llaves de acceso, contraseñas o tokens directamente en el código de tu función. Usa AWS Secrets Manager o variables de entorno cifradas. Como vimos en IAM, las credenciales en código son el error más costoso que puedes cometer.
Error 5 — Ignorar el "cold start" Cuando Lambda no ha corrido en un tiempo, el primer arranque puede tardar algunos cientos de milisegundos extra. Para aplicaciones donde la velocidad es crítica, existe la opción de "Provisioned Concurrency" que mantiene la función caliente.
Lambda como Pieza Central de tu Arquitectura
Los equipos modernos en México usan Lambda como el "pegamento" entre servicios. Una función recibe datos de una API, los procesa, los guarda en DynamoDB, y notifica por SNS. Todo sin un servidor que administrar.
Bimbo, por ejemplo, podría usar Lambda para procesar las lecturas de temperatura de sus camiones de distribución en tiempo real. Cada lectura dispara una función que valida si la temperatura está dentro del rango permitido por las NOMs de la industria alimentaria. Si no lo está, alerta al operador en segundos.
Lambda te da el poder de un servidor sin la responsabilidad de administrarlo: solo escribes el código y AWS se encarga del resto.