Funciones Serverless en JavaScript: AWS Lambda – Guía completa

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Introducción a la arquitectura Serverless y AWS Lambda



El desarrollo web moderno se mueve rápidamente hacia la computación sin servidor (serverless). Este paradigma permite a los desarrolladores centrarse en escribir la lógica de negocio sin preocuparse por la gestión de la infraestructura. AWS Lambda es uno de los servicios más populares para implementar funciones serverless, y se combina perfectamente con JavaScript (Node.js).



En este artículo, analizaremos en detalle qué es AWS Lambda, cómo crear y ejecutar tu primera función serverless en JavaScript, y revisaremos las mejores prácticas y ejemplos de código real. El material será útil tanto para principiantes como para desarrolladores experimentados que deseen dominar el desarrollo serverless.



¿Qué es AWS Lambda y cómo funciona con Node.js?



AWS Lambda es un servicio informático que ejecuta tu código en respuesta a eventos y gestiona automáticamente los recursos informáticos. Solo pagas por el tiempo de ejecución consumido (redondeado a 1 ms) y la cantidad de solicitudes.



Características clave de AWS Lambda para el desarrollador de JavaScript

  • Soporte para Node.js: AWS Lambda es compatible oficialmente con Node.js 14, 16, 18 y 20.
  • Escalado automático: Lambda crea automáticamente instancias de la función para procesar cada solicitud entrante.
  • Disparadores (Triggers): Las funciones se pueden invocar por HTTP (a través de API Gateway), por programación (CloudWatch Events), al cargar un archivo en S3 y de muchas otras formas.
  • Limitaciones: Tiempo de ejecución de hasta 15 minutos, memoria de 128 MB a 10 240 MB, tamaño del paquete de hasta 50 MB (comprimido) o 250 MB (descomprimido).


Para trabajar con Lambda en JavaScript no se necesita ninguna configuración adicional: simplemente escribe el handler (controlador) y sube el código a AWS.



Creación de tu primera función serverless en JavaScript



Escribamos una función serverless simple que reciba un JSON con el nombre de un usuario y devuelva un saludo. Este es un ejemplo clásico con el que empezar a familiarizarse con AWS Lambda.



Paso 1: Estructura básica del handler

Cada función Lambda en Node.js consiste en una función handler exportada que acepta tres parámetros: event (evento), context (contexto de ejecución) y callback (para respuesta asíncrona).



// index.jsexports.handler = async (event, context) => {    // Lógica de la función    const name = event.name || 'Invitado';    return {        statusCode: 200,        body: JSON.stringify({            message: `¡Hola, ${name}! Esta es tu primera función serverless.`        })    };};


Paso 2: Manejo de diferentes tipos de eventos

En proyectos reales, los eventos pueden provenir de diferentes fuentes. Veamos un ejemplo de procesamiento de una solicitud de API Gateway:



// handler.jsexports.handler = async (event) => {    try {        // Parseamos el cuerpo de la solicitud (si existe)        const body = event.body ? JSON.parse(event.body) : {};        const { userId, action } = body;

// Ejemplo de lógica de negocio const result = { userId: userId || 'unknown', action: action || 'default', timestamp: new Date().toISOString(), message: 'Acción ejecutada con éxito' };

return { statusCode: 200, headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' }, body: JSON.stringify(result) }; } catch (error) { return { statusCode: 500, body: JSON.stringify({ error: error.message }) }; }};


Trabajo con servicios externos y entorno



Las funciones serverless rara vez funcionan de forma aislada. La mayoría de las veces necesitan interactuar con bases de datos, S3, Dyna

Blogs

Book Recommendations