Existen dos formas de especificar las dependencias para las Cloud Functions escritas en Python: usar el archivo requirements.txt
del administrador de paquetes pip o empaquetar las dependencias locales junto con tu función.
La especificación de dependencias que usa el estándar Pipfile/Pipfile.lock no es compatible. Tu proyecto no debe incluir estos archivos.
Especifica dependencias con pip
Las dependencias en Python se administran con pip y se expresan en un archivo de metadatos llamado requirements.txt
.
Este archivo debe estar en el mismo directorio que el archivo main.py
que contiene el código de tu función.
Cuando implementas o vuelves a implementar tu función, Cloud Functions usa pip para descargar y, luego, instalar la última versión de tus dependencias como se declara en el archivo requirements.txt
.
El archivo requirements.txt
contiene una línea por paquete. Cada línea contiene el nombre del paquete y, opcionalmente, la versión solicitada. Para obtener más detalles, consulta la referencia requirements.txt
.
Para evitar que tu compilación se vea afectada por los cambios de versión de dependencia, considera fijar tus paquetes de dependencia a una versión específica.
El siguiente es un archivo requirements.txt
de ejemplo:
functions-framework requests==2.20.0 numpy
Empaqueta las dependencias locales
Puedes empaquetar y, además, implementar dependencias junto con tu función. Este enfoque es útil si tu dependencia no está disponible a través del administrador de paquetes pip o si el acceso a Internet del entorno de Cloud Functions está restringido.
Por ejemplo, puedes usar una estructura de directorio como la que se muestra a continuación:
myfunction/ ├── main.py └── localpackage/ ├── __init__.py └── script.py
Luego, puedes importar el código como de costumbre desde localpackage
con la siguiente declaración import
.
# Code in main.py from localpackage import script
Ten en cuenta que este enfoque no ejecutará ningún archivo setup.py
. Los paquetes con esos archivos aún se pueden agrupar, pero es posible que no se ejecuten correctamente en Cloud Functions.