Cómo crear y compartir capas lambda

Cómo crear y compartir capas lambda
Lambda Layer es una forma inteligente de empaquetar las dependencias y las bibliotecas que simplifican la implementación sin servidor. La capa es en realidad un archivo zip que contiene todas las dependencias. Se encoge por el tamaño del paquete de implementación y hace que su implementación sea más robusta. A veces, es necesario usar la función Lambda múltiple para su aplicación y cada función Lambda requiere algunas mismas bibliotecas, por ejemplo peticiones biblioteca. En ese caso, debe crear la capa que tiene la biblioteca de solicitudes y adjuntar la capa con sus funciones lambda. En este blog, estudiaremos cómo crear la capa Lambda y cómo usarla en su función Lambda.

Creación de la capa Lambda

AWS proporciona las siguientes cuatro formas de crear las capas en Lambda:

  • Consola de AWS
  • CloudFormation
  • API Lambda
  • SAM (modelo de aplicación sin servidor)

En este blog, usaremos la consola AWS para crear la capa Lambda que incluye la peticiones módulo. Para crear la capa, cree primero un directorio vacío para agregar el código para la capa.

ubuntu@ubuntu: ~ $ mkdir demo_requests

Vaya al directorio recién creado e instale el peticiones módulo.

ubuntu@ubuntu: ~ $ cd demo_requests
Ubuntu@ubuntu: ~ $ PIP3 Instale solicitudes -T .

Este comando instala el peticiones Biblioteca en esta carpeta. Para usar esto peticiones Módulo como capa, cierre esta carpeta primero usando el siguiente comando:

ubuntu@ubuntu: ~ $ zip -r demo_requests.Zip demo_requests

Después de crear un archivo zip del módulo, vaya a su consola Lambda y haga clic en el Capas pestaña desde el panel lateral izquierdo.

Abre la consola de capas lambda. Puede agregar su capa haciendo clic en el Crear capa botón.

Aparece una nueva página para ingresar los detalles de la capa Lambda. Proporcionar el nombre y la descripción de la capa. Para esta demostración, usamos el demo_layer Como el nombre de la capa.

Ahora, hay dos opciones para proporcionar el código a la capa: una es cargar un archivo zip y el otro es cargar el código desde la consola S3. Para esta demostración, cargamos el archivo zip que incluye el peticiones módulo.

Para arquitectura compatible Opciones, dejarlo en blanco y no marcar ninguna casilla para esta opción. Como nuestro código de capa incluye un peticiones módulo que es un módulo python, el tiempo de ejecución de esta capa es pitón. Después de ingresar toda la configuración de la capa requerida, haga clic en el crear botón para crear la capa.

Uso de la capa Lambda en su función Lambda

En la sección anterior, creamos una capa de lambda que incluye una peticiones módulo. Ahora, en esta sección, agregamos esta capa Lambda en nuestra función Lambda. Para agregar una capa lambda en la función lambda, haga clic en la función lambda y desplácese hacia abajo hasta el capas sección.

Haga clic en el anuncioD una capa botón para agregar una nueva capa a su función Lambda. Abre una nueva página que solicita detalles de la capa Lambda. Hay tres tipos de fuentes de capa Lambda:

  • Capas de AWS
  • Capas personalizadas
  • Especificar un ARN

Para agregar una capa a la función lambda que creamos en nuestra cuenta, necesitamos seleccionar la opción de capas personalizadas como fuente de capa. Después de seleccionar la fuente de la capa, en la lista, seleccione una capa que creó en la sección anterior y haga clic en el Agregar botón para agregar la capa en su función Lambda.

Ahora, después de agregar la capa, no necesita instalar el peticiones módulo en su función lambda mientras importamos el peticiones Módulo a través de la capa Lambda.

Compartir capas lambda

Por defecto, la capa Lambda es privada y solo se puede usar dentro de su cuenta de AWS. Pero, puede administrar los permisos de su capa Lambda utilizando la interfaz de la línea de comandos para compartir las capas con otra cuenta u organización de AWS. La consola de AWS no tiene la característica de compartir las capas Lambda con otras cuentas de AWS. El Adición a la capa de capa El método se utiliza para compartir las capas utilizando la interfaz de línea de comandos. En las próximas secciones del blog, veremos cómo podemos compartir las capas Lambda con otras cuentas u organizaciones de AWS.

Compartir la capa Lambda a una cuenta de AWS específica

Para compartir la capa Lambda, la Adición a la capa de capa Se utiliza el método de interfaz de línea de comandos. Debe especificar el nombre de la capa que desea compartir el ID de declaración, el número de versión y la ID de cuenta de AWS a la que desea compartir la capa. El siguiente es el comando para compartir la capa Lambda con otra cuenta de AWS usando la interfaz de línea de comandos:

Ubuntu@ubuntu: ~ $ AWS Lambda Add-Shayer-Version-Permission \
--Nombre de capa Demo_layer \
--Action Lambda: GetLayerVersion \
--Declaración-ID Declaración-1 \
--Versión-número 1
--principal \

Compartir públicamente la capa Lambda

Para compartir una capa de lambda en su cuenta de AWS públicamente para ser accesible en todas las cuentas de AWS, solo necesita cambiar el principal Parámetro del comando que se utiliza en la sección anterior. En lugar de especificar una ID de cuenta de AWS, debe usar un "*" como director para compartir la capa Lambda públicamente en todas las cuentas de AWS.

Ubuntu@ubuntu: ~ $ AWS Lambda Add-Shayer-Version-Permission \
--Nombre de capa Demo_layer \
--Declaración-ID Declaración-2 \
--Action Lambda: GetLayerVersion \
--principal * \
--Versión-número 1

Compartir la capa Lambda con todas las cuentas de AWS en una organización

Al igual que una cuenta de AWS, las capas Lambda también se pueden compartir con todas las cuentas de AWS en una organización. Para compartir la capa Lambda con todas las cuentas de una organización, debe agregar el organización parámetro en el Adición a la capa de capa dominio. Aquí está el comando para compartir la capa Lambda con todas las cuentas de AWS en una organización:

Ubuntu@ubuntu: ~ $ AWS Lambda Add-Shayer-Version-Permission \
--Nombre de capa Demo_layer \
--Declaración-ID Declaración-3 \
--Action Lambda: GetLayerVersion \
--principal * \
--organización \
--Versión-número 1

Conclusión

En este blog, estudiamos cómo crear y compartir la capa de lambda para reutilizar los pequeños trozos de nuestro código en diferentes funciones de lambda. Aprendimos a crear un archivo zip de una biblioteca de solicitudes de python y creamos una capa lambda usando este archivo zip. Después de crear la capa Lambda, agregamos esta capa Lambda a nuestra función Lambda para aumentar la reutilización del código. Además, discutimos cómo podemos compartir las capas Lambda con cuentas de AWS específicas y todas las cuentas de una organización.