Funciones Serverless en JavaScript: AWS Lambda de la A a la Z

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 al mundo Serverless y AWS Lambda



El desarrollo en la nube moderno está migrando cada vez más a la arquitectura serverless (sin servidor). A pesar del nombre, los servidores no desaparecen, simplemente dejas de pensar en ellos. AWS Lambda es un servicio de Amazon que permite ejecutar código sin aprovisionar ni administrar servidores. Pagas solo por el tiempo de ejecución real y la cantidad de solicitudes.



En este artículo, exploraremos AWS Lambda con JavaScript (Node.js) desde lo más básico hasta ejemplos reales. Aprenderás a crear, configurar y desplegar funciones, y también conocerás las mejores prácticas.



Fundamentos de AWS Lambda para Node.js



¿Qué es una función Lambda?

Una función Lambda es un bloque de código aislado que se ejecuta en respuesta a un evento (disparador). La función recibe como entrada event (datos del evento) y context (información del entorno de ejecución) y devuelve un resultado.



Estructura de una función Lambda simple

Una función básica en Node.js se ve así:



exports.handler = async (event, context) => {    const name = event.queryStringParameters?.name || 'Invitado';    const response = {        statusCode: 200,        body: JSON.stringify({ message: `¡Hola, ${name}!` }),    };    return response;};


  • exports.handler — punto de entrada obligatorio.
  • event — contiene los datos pasados por el disparador (por ejemplo, una solicitud HTTP de API Gateway).
  • context — proporciona métodos para gestionar la ejecución (tiempo, registrador, identificador).
  • La función debe ser async o devolver una Promise.


Disparadores (fuentes de invocación)

Lambda no existe en el vacío. Puede ser invocada por:

  • API Gateway — solicitudes HTTP (REST/WebSocket).
  • S3 — carga/eliminación de archivos.
  • DynamoDB Streams — cambios en la base de datos.
  • SQS/SNS — colas de mensajes.
  • CloudWatch Events — programación (cron).


Creación y despliegue de una función Lambda



Paso 1: Configuración del entorno

Necesitarás:

  • Una cuenta de AWS.
  • AWS CLI instalado y credenciales configuradas.
  • Node.js (versión 18 o 20, recomendado por AWS).


Paso 2: Creación de la función a través de la consola

Esta es la forma más rápida para principiantes:

  1. Ve a AWS Management Console → Lambda.
  2. Haz clic en "Crear función" → "Desde cero".
  3. Indica el nombre, selecciona el runtime Node.js 20.x.
  4. Haz clic en "Crear".

En el editor de código, pega nuestro ejemplo anterior y haz clic en "Deploy". ¡Listo!



Paso 3: Despliegue con AWS CLI

Para automatizar el despliegue, usa el comando:

zip -r function.zip index.js node_modulesaws lambda update-function-code \    --function-name my-first-lambda \    --zip-file fileb://function.zip


Escenarios avanzados y mejores prácticas



Trabajo con variables de entorno

Nunca almacenes secretos en el código. Usa process.env:

const dbPassword = process.env.DB_PASSWORD;const tableName = process.env.TABLE_NAME;

Las variables se configuran en los ajustes de la función (Configuration → Environment variables).



Manejo de errores y registro

Usa el registrador integrado console.log — envía automáticamente los registros a CloudWatch:

exports.handler = async (event) => {    console.log('Evento recibido:', JSON.stringify(event, null, 2));    try {        // tu código    } catch (error) {        console.error('Error:', error.message);        throw e                

Blogs

Book Recommendations