Hola a tod@s

En este post veremos cómo añadir librerías extra a nuestras funciones lambda python.

¿Por qué necesitamos añadir librerías extra a las funciones Lambda?
AWS Lambda proporciona un entorno de ejecución para nuestras aplicaciones, pero a veces las librerías por defecto que vienen con este entorno no cubren todas nuestras necesidades. Aquí es donde la adición de librerías extra se vuelve esencial.

El método que mejor me ha funcionado a mí a la hora de hacer esta tarea es usar una EC2 con el sistema operativo Linux2 de AWS, que es el mismo sistema operativo que usan las lambda facilitando la descarga de librerías. Entiendo que también se podrá con una máquina virtual. Otra opción a la hora de descargar las librerías se puede hacer desde un entorno virtual VENV.

  • Versión python:
    Una vez dentro de nuestro EC2 (o máquina virtual o vuestro mejor recurso) comprobamos la versión python ya que después a la hora de ejecutarlo desde las lambda se recomienda usar las mismas versiones (o bien un por arriba).
    Se pueden
  • Descargando librería:
    Con el comando: (ejemplo descarga librería requests)
pip3 install requests -t /home/ec2-user/carpetaEjemplo1/carpetaEjemplo2

Esto nos dejará toda la librería dentro de la carpeta:

  • Cargar contenido a la lambda:
    Para la carga de las carpetas de las librerías en la lambda se debe de comprimir todo en un zip.

En la imagen vemos el ejemplo, en este caso he descargado requests y a parte tengo dos carpetas más, imagenes y utils que son de la misma lambda. El archivo que lanza la lambda es lambda_function.py.
Todo esto lo seleccionamos y lo comprimirmos en un zip.

  • Cargar en lambda el zip:
    Desde dentro de la lambda, en el botón «Cargar desde» seleccionamos el archivo zip:

Esto subirá todos los archivos a la lambda.

  • Ejecución lambda:
    Recordar que para poder ejecutar la lambda con un archivo .py diferente hay que configurar cual es el archivo que arranca la lambda y comprobar la versión.

Desde esta parte de configuración se le puede inicar el controlador que será el archivo .py que se ejecutará al iniciar la lambda.

Posibles Errores:
Si existe algún error al ejecutar la lambda debido a las librerías, es posible que tengamos que descargar alguna librería extra porque es complementaria a la necesaria o bien modificar alguna de las carpetas descargadas por la nueva descargada y además comprobar la versión de python.

Por ejemplo, en la librería requests me dió un problema de ssl y tuve que descargar la librería de urllib3<2.0 para poder ejecutar el script sin problemas. Se descargaron las carpetas urllib3 y otra urllib3xxx.
¿Y como se hace? Al descargar las carpetas, copiar y sobreescribir en caso de ser necesario. Crear zip y subirlo a la lambda.

Espero que este post os ayude.

Salu2!

Un comentario

Deja una respuesta

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