Crear Layer para AWS Lambda

Publicado por

Un layer de aws lambda se refiere a un archivo .zip que puede contener código, datos adicionales como drivers, buscadores, librerías o configuraciones. Los layers o capas de lambda son muy populares debido a que, lambda al ser un servicio serverless no cuenta con varias librerías o dependencias que usted puede estar usando en su función actualmente, para ilustrar como trabajar un lambda layer se cargara una librería de Python que no esta disponible de forma predeterminada en el servicio de lambda.

Para esta ilustración cargaremos la librería arrow la cual sirve para manipular, formatear y convertir fechas, horas y marcas de tiempo.

Este pequeño ejemplo realizado de manera local, presenta el objetivo que queremos en nuestra función: traer la fecha actual. De esta manera crearemos nuestra función lambda de la siguiente manera:

Como se aprecia en el Gif anterior nos encontramos con el error:

"errorMessage": "Unable to import module 'lambda_function': No module named'arrow'", "errorType": "Runtime.ImportModuleError", "stackTrace": []

Esto nos quiere decir que lambda no encuentra dicha librería es acá donde entra a jugar el layer en el cual cargaremos esta librería para que lambda sea capaz de hacer uso de este módulo, para ello descargaremos en una carpeta determinada la librería.

mkdir lambda_layer
cd lambda_layer
mkdir python
cd python
pip install arrow -t ./

Fíjense en la importancia que tiene guardar la librería dentro de una carpeta llamada Python esto es fundamental para el funcionamiento correcto del layer, posteriormente se convierte en un archivo .zip ya que este es el formato de los layers. Una vez tenemos nuestro .zip lo debemos cargar como un layer de lambda.

Finalmente vinculamos el layer a nuestra función lambda y testeamos.

Deja un comentario

Tu dirección de correo electrónico no será publicada.