Saltar al contenido
← Catálogo
CómputoIntermedio

AWS Lambda

Ejecuta código sin administrar servidores: pagas solo por el tiempo real de ejecución.

En palabras simples

Es como la luz con sensor de movimiento: se enciende sola cuando alguien pasa, hace su trabajo, y se apaga. No hay nada consumiendo mientras nadie la necesita.

Cuándo aplicarlo

Cuando tu código responde a eventos puntuales (una petición HTTP, un archivo subido, un mensaje en una cola) y no necesita estar corriendo permanentemente.

  • ▸Procesar una imagen apenas se sube a un bucket de S3
  • ▸Exponer una API pequeña junto a API Gateway
  • ▸Ejecutar tareas programadas, como un resumen semanal por correo
  • ▸Reaccionar a cambios en una tabla de DynamoDB

Vocabulario mínimo

Función
La unidad de despliegue: tu código más su configuración de memoria, tiempo límite y permisos.
Trigger (disparador)
El evento que invoca la función: una petición HTTP, un archivo nuevo en S3, un temporizador.
Cold start
La demora extra la primera vez que se invoca una función que llevaba rato sin usarse, porque AWS debe preparar el entorno.
Execution role
El rol de IAM que define qué puede hacer la función dentro de tu cuenta de AWS.

Costo y capa gratuita

Cómo se cobra
Por número de invocaciones y por GB-segundo de ejecución (memoria asignada × tiempo). Si nadie la invoca, no cuesta nada.
Capa gratuita
1 millón de invocaciones y 400.000 GB-segundo gratis al mes — y esta capa no expira a los 12 meses, es permanente.

Cuidado con los créditos

  • ⚠Asignar más memoria de la necesaria: el costo escala directamente con la memoria configurada.
  • ⚠Una función que se invoca a sí misma o que escribe en el bucket que la dispara: crea un bucle infinito que puede costar mucho en minutos.
  • ⚠Timeouts largos combinados con llamadas externas lentas: pagas por todo el tiempo de espera.

Descripción

AWS Lambda es cómputo serverless: subes tu código (una función) y AWS se encarga de todo lo demás — aprovisionar el servidor, escalarlo y apagarlo cuando no se usa. No hay una máquina que tú administres; solo pagas por el número de invocaciones y el tiempo que tarda cada una en ejecutarse, medido en milisegundos.

Es el opuesto conceptual de EC2: en vez de “una computadora siempre encendida”, es “código que aparece, corre y desaparece” cada vez que algo lo dispara.

Cómo funciona

  1. Defines una función con tu código y eliges cuánta memoria darle.
  2. Conectas un trigger: una petición de API Gateway, un objeto nuevo en S3, un horario.
  3. Cuando el trigger ocurre, AWS levanta un entorno, ejecuta tu código y lo destruye.
  4. Si llegan mil eventos simultáneos, AWS levanta mil ejecuciones en paralelo sin que tú configures nada.

Manos a la obra

  • Crea una función en Python desde la consola con el runtime por defecto.
  • Configura un trigger de S3 sobre un bucket de prueba, evento “objeto creado”.
  • Haz que la función escriba en los logs el nombre del archivo que la disparó.
  • Sube un archivo cualquiera al bucket y revisa CloudWatch Logs: ahí está tu evento.

Ejemplo visual

Redimensionar imágenes al subirlassube fotoobjeto nuevoguardaVisitanteAmazon S3bucket de fotosAWS LambdaredimensionaAmazon S3bucket optimizado
Redimensionar imágenes al subirlasUn visitante sube una foto a un bucket de S3. Ese objeto nuevo genera un evento ObjectCreated que dispara automáticamente una función Lambda, la cual redimensiona la imagen y guarda la versión optimizada en un segundo bucket. Nadie tuvo que dejar un servidor prendido esperando ese momento.

Lo que hace a este patrón serverless no es que no haya servidores, sino que no hay ninguno esperando. Entre una foto y la siguiente no se ejecuta nada, y no se paga nada.

Cuándo NO es la mejor opción

  • Amazon EC2 — si el proceso debe correr de forma continua o supera los 15 minutos por ejecución.
  • AWS Fargate — si necesitas contenedores con más control sobre el entorno, pero sin administrar servidores.

Se usa junto con

Aparece en certificaciones

  • AWS Certified Cloud Practitioner
  • AWS Certified Solutions Architect – Associate
  • AWS Certified Developer – Associate