Lambda Layer para Python
Tags: aws, lambda, python, layer
Published: 2021-10-04 20:45:51

En todo proyecto de desarrollo es necesario utilizar librerías o reutilizar código. 
Para poder reutilizar nuestras propias librerías o de terceros, en las funciones lambda se utiliza un recurso llamado **Layers** que nos va a servir para cubrir esta necesidad.

En Python la estructura de carpetas que debemos utilizar para subir un Layer es la siguiente:

_python/lib/pythonversion/site-packages/archivos libreria_

Después de tener nuestros archivos en esta estructura de carpetas lo que debemos es hacer comprimirla y subirla a nuestra consola de AWS.

Por ejemplo en caso que quisiéramos utilizar la librería [Beautiful Soup](https://www.crummy.com/software/BeautifulSoup/bs4/doc/) en nuestras funciones Lambda, debemos hacer lo siguiente:

1) Colocar los archivos de la(s) librería(s) en la estructura de carpetas mencionada anteriormente.

2) Esto lo podemos conseguir con el siguiente comando:

_pip install beautifulsoup4 -t /documents/python/lib/python3.7/site-packages_

**pip install:** Es utilizado para instalar librerías en Python.

**beautifulsoup4:** Nombre de la librería a isntalar.

**-t:** Indica que se van a instalar archivos en una carpeta.

**/documents/python/lib/python3.7/site-packages:** Es la ruta donde van a quedar los archivos de la librería

3) Luego de tener los archivos en la estructura de carpetas se deben comprimir los archivos de la carpeta **python**.

4) Debemos subir nuestra Layer(archivo comprimido a nuestra consola de AWS).

5) Ingresar a la consola de AWS

6) Buscar el servicio de Lambda 
![Buscar el servicio de Lambda](https://raw.githubusercontent.com/cecamilo00/posts/circleci-project-setup/seleccionar%20servicio%20lambda.png)

7)Seleccionar la opción Layers

![Seleccionar la opción Layers](https://raw.githubusercontent.com/cecamilo00/posts/circleci-project-setup/seleccionar%20layers.png)

8) Presionar el botón crear Layer.
![Presionar el botón crear Layer.](https://raw.githubusercontent.com/cecamilo00/posts/circleci-project-setup/seleccionar%20boton%20crear%20layer.png)

9)Ingresar los datos de la Layer.
![Ingresar los datos de la Layer.](https://raw.githubusercontent.com/cecamilo00/posts/circleci-project-setup/ingresar%20datos%20layer.png)

El campo _Compatible runtimes_: se debe seleccionar como mínimo la versión de Python que se definió en la estructura de carpetas.
El campo _Compatible architectures_: se usa para definir el tipo de procesador que va a utilizar la función Lambda para su ejecución.

10) Después de crear la Layer se debe crear una función Lambda la cual va a hacer usa de la Layer creada. **Se omiten los pasos de la creación de la función lambda**.

11)Teniendo la función Lambda creada debemos seleccionar la Layer que queremos que utilice nuestra función.

![Agregar Layer.](https://raw.githubusercontent.com/cecamilo00/posts/circleci-project-setup/agregar%20layer.png)

12) Seleccionamos Custom Layers y elegimos la Layer que queremos que utilice nuestra función.

![Agregar Custom Layer.](https://raw.githubusercontent.com/cecamilo00/posts/circleci-project-setup/agregar%20custom%20layer.png)fin

13) Ahora ya puedes utilizar la(s) librería(s) en tu función Lambda.

![Ver Layer](https://raw.githubusercontent.com/cecamilo00/posts/circleci-project-setup/layer%20en%20lambda.png)


Me pueden encontrar en

[Camilo Cabrales](https://www.linkedin.com/in/camilo-cabrales-31a0bb53/)