Bienvenido, me llamo Miguel y aquí les traigo otro nuevo post.
Índice
Una guía simple para crear sus propias capas Lambda
para que pueda usar cualquier paquete de Python
en su función Lambda
AWS Lambda es una herramienta sin servidor versátil. Con Lambda, puede ejecutar prácticamente cualquier cosa que desee: simplemente escriba el código y cárguelo en Lambda. Se le cobrará por cada 100 ms
que utilice, por lo que solo pagará por el tiempo de cálculo que consuma.
Lambda es compatible con Python, que es una excelente opción si tiene experiencia en su uso. Sin embargo, una de las desventajas de Lambda es que, de forma predeterminada, no podrá importar sus paquetes de confianza, como Pandas.
Le mostraré la forma más sencilla de importar cualquier paquete que necesite para su función Lambda. Usaré Pandas como ejemplo, pero el mismo método se puede usar para otros paquetes.
- Busque Cloud9 en los servicios de AWS.
- Haga clic en ‘Crear entorno’.
- Nombra tu entorno como quieras (por ejemplo,
python_package_test
) y haz clic en el siguiente paso. - Mantenga la configuración predeterminada del entorno (cree una nueva instancia EC2 para el entorno; t2.micro; Amazon Linux, etc.) y haga clic en el siguiente paso.
- Haga clic en ‘Crear entorno’ y estará listo para comenzar.
- Escriba el siguiente código línea por línea en la terminal en la parte inferior. El comando pip install pandas se puede reemplazar con un paquete de su elección. También puede instalar más de
1
paquete*
.
mkdir folder cd folder virtualenv v-env source ./v-env/bin/activate pip install pandas deactivate
- Luego escriba el siguiente código línea por línea para crear su capa.
mkdir python cd python cp -r ../v-env/lib64/python3.6/dist-packages/* . cd .. zip -r panda_layer.zip python aws lambda publish-layer-version --layer-name pandas --zip-file fileb://panda_layer.zip --compatible-runtimes python3.6
- Vaya al servicio AWS Lambda y haga clic en ‘Crear función’.
- Nombre su función, configure el tiempo de ejecución en ‘Python 3.6’ y haga clic en ‘Crear función’.
- Haga clic en ‘Capas’ en el diseñador de funciones, luego haga clic en ‘agregar una capa’.
- En el menú desplegable de nombres, debería ver su capa Pandas. Haga clic en ‘Agregar’.
- Probemos que esto ha funcionado con el siguiente script. Tenga en cuenta que también puedo importar numpy ya que es una dependencia del paquete Pandas:
import numpy as np import pandas as pddef lambda_handler(event, context): df2 = pd.DataFrame(np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]),columns=[‘a’, ‘b’, ‘c’]) number = np.pi print(df2) print(number)
¡Funcionó! Podemos ver la salida de pandas DataFrame
y los dígitos de pi
, prueba numpy y pandas se han importado con éxito.
* Limitaciones: una función Lambda puede usar hasta 5 capas a la vez, sin embargo, el tamaño total descomprimido de la función y de todas las capas no puede exceder los 250 MB.
Gracias por leer este post.
Añadir comentario