¿Cómo crea un backend Serverless con Express y AWS Lambda?
Express es un popular framework de Node.js para la creación de aplicaciones web y servicios RESTful. AWS (Amazon Web Services) es un proveedor de servicios en la nube que ofrece un amplio conjunto de servicios para la implementación y el despliegue de aplicaciones. Serverless Framework es una herramienta que permite a los desarrolladores crear y desplegar aplicaciones serverless en diferentes proveedores de la nube, incluyendo AWS. En este artículo, explicaremos cómo crear una aplicación con Express y desplegarla en AWS utilizando el Framework Serverless.
Paso 1: Configuración del entorno
Para empezar, debemos configurar nuestro entorno de desarrollo. Primero, asegúrate de tener Node.js instalado en tu ordenador. A continuación, instala el CLI de Serverless Framework mediante el siguiente comando:
1 | npm install -g serverless |
También necesitaremos tener una cuenta de AWS. Si no tienes una, puedes registrarte para obtener una cuenta gratuita de AWS en su sitio web. Una vez que tengas una cuenta, debes configurar las credenciales de AWS en tu ordenador (Access Keys y Secret Access Keys). Escribiré un artículo sobre esto en un futuro próximo, pero por ahora, puedes consultar la documentación oficial de AWS para obtener más información.
Paso 2: Crear una aplicación con Express
Para crear una aplicación con Express, puedes seguir los siguientes pasos:
- Crea un nuevo directorio para tu aplicación y accede a él:
1 | mkdir express-app |
- Inicializa un proyecto de Node.js y crea un archivo index.js:
1 | npm init -y |
- Instala las dependencias necesarias para Express:
1 | npm install express serverless-http |
- Abre el archivo index.js y agrega el siguiente código para configurar una aplicación Express básica:
1 | const serverless = require('serverless-http') |
Este código configura una aplicación Express básica que escucha en el puerto 3000 y devuelve el mensaje “¡Hola, mundo!” cuando se accede a la ruta raíz (/). Nota que al final del archivo, se exporta una función handler que será utilizada por Serverless Framework para desplegar la aplicación en AWS Lambda.
Paso 3: Desplegar la aplicación en AWS Lambda con Serverless Framework
Ahora que hemos creado nuestra aplicación con Express, podemos utilizar el Framework Serverless para desplegarla en Lambda. Para hacerlo, sigue los siguientes pasos:
- Crea un archivo serverless.yml en el directorio raíz de tu proyecto:
1 | touch serverless.yml |
- Abre el archivo serverless.yml y agrega el siguiente código para configurar el despliegue de la aplicación en AWS Lambda:
1 | service: mi-aplicacion |
Este código configura el servicio de la aplicación como mi-aplicacion, el proveedor de servicios como AWS, la versión de Node.js como 16.x, y define una única función llamada index que manejará las solicitudes HTTP.
- Ahora podemos desplegar la aplicación a AWS Lambda con el siguiente comando:
1 | serverless deploy |
Este comando crea una nueva función Lambda y un API Gateway que actúa como un punto de entrada para nuestra aplicación. El comando deploy puede tardar unos minutos en completarse, ya que Serverless Framework debe crear y configurar los recursos necesarios en AWS.
- Una vez que el despliegue ha finalizado, se imprimirá en la consola una URL que puede ser utilizada para acceder a nuestra aplicación en AWS Lambda. Copia esta URL y pégala en tu navegador para probar la aplicación.
- Para actualizar la aplicación después de hacer cambios, ejecuta el siguiente comando:
1 | serverless deploy |
Este comando actualiza la función Lambda y el API Gateway con los cambios realizados.
- Para eliminar la aplicación de AWS Lambda, ejecuta el siguiente comando:
1 | serverless remove |
Este comando eliminará todos los recursos creados por Serverless Framework en AWS.
Conclusiones
En este artículo, hemos explicado cómo crear una aplicación con Express y desplegarla en AWS Lambda utilizando el Framework Serverless. Ahora, tienes una aplicación serverless en la nube que puede ser escalada según las necesidades de tu negocio, y solo pagas por los recursos que utilizas.
Además, te comparto el enlace de este repositorio con una aplicación sencilla de express configurada para funcionar con serverless que puedes utilizar como base para tus proyectos.
Espero que este tutorial te haya sido útil en tu camino como desarrollador. ¡Buena suerte!
¿Cómo crea un backend Serverless con Express y AWS Lambda?
http://luislizama.com/2023/03/28/¿Como-crea-un-backend-Serverless-con-Express-y-AWS-Lambda/