AWS Lambda Capas/Layers

¿Qué son las Capas de AWS Lambda?

En otro post anterior vimos como poder añadir librerías extra en las lambda. Esta vez vengo con otro post para que veamos las capas que es una parte interesante al ejecutar lambdas.

La capa Lambda en AWS Lambda es una “poderosa” característica que permite reutilizar código común entre múltiples funciones Lambda.
Una capa es un archivo ZIP que contiene bibliotecas personalizadas o dependencias. Estas capas se pueden compartir entre diferentes funciones Lambda, lo que facilita la gestión del código y reduce la redundancia.
Esto va bien porque no tenemos que subir la dependencia junto con el .py de la lambda, tan solo con hacer un import la lambda ya lee la dependencia.

Cómo Instalar Capas en AWS Lambda

Pasos para instalar una capa en AWS Lambda:

  1. Prepara tu Capa: Primero, organizamos el contenido a incluir en la capa. Esto puede ser cualquier conjunto de carpetas de la biblioteca o dependencia.
  2. Comprime tu Capa: AWS Lambda requiere que las capas se suban en formato ZIP. Asegúrate de comprimir tus archivos correctamente, respetando las rutas de las carpetas que AWS Lambda espera:
    • Para bibliotecas Python, colócalas en una carpeta llamada python dentro del archivo ZIP.
  3. Crea la Capa en AWS Lambda:
    • Ve a la consola de AWS Lambda.
    • Elige “Capa” o “Layers” en el panel de navegación.
    • Haz clic en “Create capa o layer”.
    • Proporciona la información necesaria, incluyendo el nombre de la capa y la descripción.
    • Sube el archivo ZIP que preparaste.
    • Selecciona la(s) versión(es) de runtime compatible(s) con tu capa.
    • Haz clic en “Create”.
  4. Adjunta la Capa a tu Función Lambda:
    • Abre la función lambda.
    • En el panel de diseño, selecciona “Capas” o “Layers”.
    • Haz clic en “Add a layer”.
    • Selecciona “Custom layers” y elige la capa que creaste.
    • Elige la versión de la capa y haz clic en “Add”.

Rutas de las Carpetas

Cuando prepares el contenido de tu capa, es crucial colocar tus archivos en las rutas correctas dentro del archivo ZIP:

  • Librerías Python: /python/lib/python3.8/site-packages/ (ajusta la versión de Python según sea necesario).

Compresión en ZIP

Para comprimir tus archivos en ZIP, asegúrate de hacerlo de tal manera que el contenido deseado esté en la raíz del archivo ZIP. Por ejemplo, si estás incluyendo librerías Python, la estructura dentro del ZIP debería verse así:

python/ lib/ python3.8/ site-packages/ (tus bibliotecas instaladas aquí)

Usa una herramienta de compresión que mantenga esta estructura de carpetas intacta.

Herramienta creación de lambdas

Para facilitar aún más el proceso de creación de capas lambda de aws comparto una repo que he creado:

https://github.com/Pistatxos/AWS-Lambda-Capas-Crear

Nos facilitará la creación de capas Lambda personalizadas en diversas versiones de Python mediante el uso de Docker. Siguiendo las mejores prácticas, todo el código está comentado y utiliza contenedores Docker que emulan el sistema Lambda para cada versión de Python, asegurando una compatibilidad óptima y una implementación sencilla. Esto lo hace práctico y útil para cualquiera que desee crear funciones Lambda de manera fácil.

Dale una “estrella” en Github si os va bien o si gusta para seguir actualizando la Repo.

Espero que este post sirva de ayuda!
Salu2

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *