AWS Lambda: cómo procesar eventos sin servidor propio
Lambda ejecuta funciones cuando suceden eventos. No tienes que administrar un servidor permanente para cada pequeño proceso.
Por qué importa en una infraestructura moderna
Una integración habitual es SNS→SQS→Lambda. Lambda recibe lotes desde SQS mediante un event source mapping, procesa y registra resultados. El código necesita manejar errores, reintentos y duplicados.
Cómo utilizarlo correctamente
El rol IAM de ejecución debe limitarse a los recursos necesarios. Ajusta timeout, memoria, concurrencia y registros. Una función Lambda en CloudFormation necesita el código desplegable y su rol, no solo una referencia vacía. Para procesos largos o con estado persistente quizá sea mejor un contenedor.
¿Cuándo conviene utilizar AWS Lambda?
Es útil cuando resuelve una necesidad real de arquitectura; incluir todos los servicios en una plantilla solo porque existen añade complejidad, permisos y costes. Empieza con el flujo más pequeño posible, documenta las responsabilidades, trabaja primero en pruebas y crea alarmas de coste y operación.
Infraestructura como código con CloudFormation
Cuando haya que repetir el despliegue, usa una plantilla versionada que describa los recursos pertinentes y sus relaciones. Revisa los permisos antes de ejecutar cambios. Para aprender se puede empezar desde la consola de AWS y pasar a AWS CLI después.
Artículos de esta serie
- AWS CloudFormation: plantillas YAML, pilas y despliegues
- Amazon SNS: qué es un tema y para qué sirve
- Amazon SQS: colas, reintentos y mensajes fallidos
- AWS Lambda: cómo procesar eventos sin servidor propio
- AWS IAM: permisos, roles y mínimo privilegio
- AWS KMS: cuándo necesitas claves de cifrado
- AWS Secrets Manager: credenciales y rotación segura
Referencia oficial
Documentación de AWS sobre AWS Lambda.
¿Qué es Lambda exactamente?
AWS Lambda es un servicio de cómputo serverless: subes una función y AWS ejecuta ese código cuando recibe eventos o peticiones. No alquilas una máquina para instalar y administrar su sistema operativo; AWS administra esa infraestructura, aunque tú sigues siendo responsable del código, las dependencias, los datos, los permisos y el coste. «Sin servidor» significa sin administrar tú el servidor, no que no haya servidores.
Ejemplo práctico: comprobar un pedido
Una tienda publica pedido.confirmado. SNS distribuye el evento, SQS lo almacena y Lambda recibe el trabajo. La función valida los campos, comprueba que el ID no se haya procesado y registra el resultado. Si una API externa falla temporalmente, el mensaje puede volver a intentarse. Los fallos persistentes terminan en una DLQ configurada.
Ejemplo Python para eventos SQS
import json
def lambda_handler(event, context):
failures = []
for record in event.get("Records", []):
try:
data = json.loads(record["body"])
event_id = data["id"]
# Comprobar idempotencia y ejecutar la tarea
print("Procesando evento:", event_id)
except (KeyError, ValueError, TypeError) as exc:
print("Mensaje no procesado:", str(exc))
failures.append({
"itemIdentifier": record["messageId"]
})
return {"batchItemFailures": failures}Este código es didáctico: no incluye una operación de negocio real ni almacenamiento persistente de idempotencia. Para usar la respuesta parcial hay que activar ReportBatchItemFailures en el event source mapping. De lo contrario, la función puede reintentar lotes completos. Referencia oficial de AWS.
Cómo se ejecuta y cuánto cuesta
Lambda factura principalmente por solicitudes y tiempo de ejecución según memoria y modalidad de capacidad, además de posibles cargos de otros servicios. Una función que casi nunca se invoca puede resultar económica; una que procesa enormes volúmenes o tarda mucho también puede acumular gasto. La concurrencia, los límites de ejecución y los arranques en frío afectan a la arquitectura. Usa presupuestos y alarmas.
Seguridad: rol IAM y secretos
La función asume un rol IAM temporal con permisos para los servicios necesarios. Si solo necesita leer una cola y escribir logs, no debería recibir permiso para administrar toda la cuenta. Si usa un token externo, consulta un secreto concreto desde Secrets Manager. Evita tokens en variables visibles para personas sin autorización y jamás los imprimas en logs.
Cuándo elegir otra tecnología
Lambda encaja con tareas cortas, basadas en eventos, escalables y sin dependencia de estado local. Para procesos duraderos con sesiones largas, servicios que mantienen conexiones permanentes o requisitos que exceden sus límites, puede convenir ECS, Fargate, instancias u otros servicios. La arquitectura debe adaptarse al trabajo, no al nombre de moda.
Guías relacionadas de Laraflex
CloudFormation · Amazon SNS · Amazon SQS · AWS IAM · AWS KMS · AWS Secrets Manager
Consulta la documentación oficial de AWS para ampliar y contrastar los detalles técnicos.
Comments (0)
No comments yet.
Leave a Comment