¿Cómo crea un backend Serverless con Express y AWS Lambda?

¿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:

  1. Crea un nuevo directorio para tu aplicación y accede a él:
1
2
mkdir express-app
cd express-app
  1. Inicializa un proyecto de Node.js y crea un archivo index.js:
1
2
npm init -y
touch index.js
  1. Instala las dependencias necesarias para Express:
1
npm install express serverless-http
  1. Abre el archivo index.js y agrega el siguiente código para configurar una aplicación Express básica:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const serverless = require('serverless-http')
const express = require('express');

const app = express();

app.get('/', (req, res) => {
res.send('¡Hola, mundo!');
});

const PORT = process.env.PORT || 3000;

app.listen(PORT, () => {
console.log(`Servidor iniciado en el puerto ${PORT}`);
});

module.exports.handler = serverless(app)
` ` `

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:

  1. Crea un archivo serverless.yml en el directorio raíz de tu proyecto:
1
touch serverless.yml
  1. Abre el archivo serverless.yml y agrega el siguiente código para configurar el despliegue de la aplicación en AWS Lambda:
1
2
3
4
5
6
7
8
9
10
11
service: mi-aplicacion
provider:
name: aws
runtime: nodejs16.x
functions:
app:
handler: index.handler
events:
- http:
path: /
method: any

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.

  1. 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.

  1. 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.
Enlace para acceder al backend en AWS

  1. 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.

  1. 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!

Author

Luis Lizama

Posted on

2023-03-28

Updated on

2023-07-21

Licensed under