Tutorial: Utilizando de capas en AWS Lambda — Node.js

tutorial

Tutorial: Utilizando de capas en AWS Lambda — Node.js

Tutorial simple de creación y uso de capas en la función Lambda.


AWS Lambda es un servicio informático sin servidor de AWS que se incluye en la categoría Compute. Simplemente, puede ejecutar un código escrito en Java, Python, Node.js, etc., y ejecutarlo allí.

Independientemente del idioma, es obvio que la mayoría de las veces necesitaremos usar algunas bibliotecas externas para nuestra tarea. Si hacemos el desarrollo localmente, agregar bibliotecas es sencillo. Por ejemplo, si está escribiendo código Python, tiene pip install <package>. Si es Node.js, podemos hacer npm install <package>. Pero, ¿qué sucede si el código que pretendía escribir en AWS Lambda necesita bibliotecas externas? ¿Cómo podemos agregarlos?

Entonces, básicamente manejaremos dos enfoques en este tutorial:

  1. Realice el desarrollo localmente con sus bibliotecas externas y cárguelo en la consola de Lambda como un archivo zip o un archivo contenedor (esto se denomina paquete de implementación).
  2. Agregue bibliotecas externas como capas.

El uso de paquetes de implementación está bien, pero tiene la desventaja de que requiere que vuelva a cargar el código en Lambda incluso para cambios menores.

¿Cuáles son las ventajas de usar capas entonces?

  • Una vez que haya creado una capa, puede usarla sobre múltiples funciones escritas en el mismo idioma.
  • Puede tener múltiples versiones para una biblioteca.
  • Simplemente puede escribir el código en Lambda y realizar la edición en línea. Esto es mucho más fácil que usar un paquete de implementación.

Veamos paso a paso cómo podemos agregar una capa a una función Lambda de Node.js. Tenga en cuenta que agregar capas no se limita a Node.js. La idea es la misma incluso para otros idiomas, solo se cambiarían algunas cosas.

La biblioteca que vamos a utilizar es el conocido uuid, que se utiliza mucho para crear identificadores únicos.

Crear la función

  • Vaya a la consola de Lambda y cree una función. Debe proporcionar un nombre y especificar el tiempo de ejecución.
tutorial
Crear función
  • Agrega el siguiente código.
const { v4: uuidv4 } = require('uuid');

exports.handler = async (event) => {
    // TODO implement
    console.log('uuid: ', uuidv4());
};
  • Haga clic en el botón Prueba y le pedirá que cree un evento de prueba. Asigne un nombre de evento y cree el evento.
tutorial
Crear evento de prueba
  • Ahora puedes probar la función. Haga clic en el botón de prueba y verá lo siguiente.
tutorial
Probar la función

Sí, recibimos el error “Cannot find module ‘uuid’ ” (“No se puede encontrar el módulo ‘uuid'”). Esto es obvio porque no existe el uuid en AWS Lambda.

Para resolver esto, podemos agregar la biblioteca uuid como una capa Lambda.

Crear capa

  • Cree una carpeta como “nodejs” en su computadora. Tenga en cuenta que nodejs no es un nombre aleatorio. Este es el nombre exacto que se le debe dar.
  • Abra un terminal de comando dentro de la carpeta “nodejs” que creó. Escriba el siguiente comando.
npm init -y
  • Instale el paquete que necesita. En este caso, es uuid. Podemos instalar la biblioteca a través del siguiente comando.
npm i uuid

Ahora podemos ver que el paquete ha sido instalado.

tutorial
carpeta nodejs
  • Cree un archivo zip de la carpeta nodejs.
tutorial
nodejs zip folder

Eso es. Ahora podemos subir esto a Lambda.

Agregar capa a Lambda

  • Expanda el panel de navegación izquierdo de la consola de Lambda. Seleccione Capas y haga clic en Crear capa.
tutorial
Crear capa
  • Proporcione el nombre y el tiempo de ejecución. También puede proporcionar varios tiempos de ejecución. Cargue el archivo zip que creó y haga clic en el botón Create (Crear).

tutorial

  • Después de crear la capa, vaya a la función Lambda y haga clic en Capas.

  • Seleccione Custom layers (Capas personalizadas). Luego elija la capa que acabamos de agregar y la versión. Haga clic en Agregar.
tutorial
Agregar capa

Eso es. Ha agregado correctamente la capa a Lambda. Ahora también puede usar esta capa para otra función de Lambda, no solo para esta.

Veamos la salida ahora. Haga clic en el botón Test (Prueba). ¡Aquí vamos!

tutorial
resultado de la ejecución

¡Tenemos la salida!

Tenga en cuenta que solo puede agregar hasta 5 capas para una función y que el paquete descomprimido no debe exceder los 250 MB.

Espero que encuentre útil este tutorial.

¡Feliz codificación!

Recent Post