Spécifier des dépendances en Python

Il existe deux manières de spécifier des dépendances Cloud Functions rédigées en Python : en utilisant le fichier requirements.txt du gestionnaire de packages pip ou en empaquetant les dépendances locales avec votre fonction.

Spécifier des dépendances avec pip

Dans Python, les dépendances sont gérées avec pip et exprimées dans un fichier de métadonnées appelé requirements.txt. Ce fichier doit se trouver dans le même répertoire que le fichier main.py qui contient le code de votre fonction.

Lorsque vous déployez votre fonction, Cloud Functions télécharge et installe les dépendances déclarées dans le fichier requirements.txt à l'aide de pip.

Le fichier requirements.txt contient une ligne par package. Chaque ligne contient le nom du package et, éventuellement, la version demandée. Pour en savoir plus, consultez la documentation de référence sur requirements.txt.

Voici un exemple de fichier requirements.txt :

requests==2.20.0
numpy

Empaqueter les dépendances locales

Vous pouvez également empaqueter et déployer les dépendances avec votre fonction. Cette approche est utile si votre dépendance n'est pas disponible via le gestionnaire de packages pip ou si l'accès Internet de votre environnement Cloud Functions est limité. Par exemple, vous pouvez utiliser une structure de répertoires comme suit :

myfunction/
├── main.py
└── localpackage/
    ├── __init__.py
    └── script.py

Vous pouvez ensuite utiliser le code comme à l'accoutumée à partir de la dépendance locale incluse, localpackage. Vous pouvez utiliser cette approche pour empaqueter tous les packages Python avec votre déploiement.

Utiliser des dépendances privées

Les dépendances sont installées dans un environnement Cloud Build qui ne fournit pas d'accès aux clés SSH. Les packages hébergés dans des dépôts nécessitant une authentification SSH doivent être fournis et importés avec le code de votre projet, comme décrit dans la section précédente.

Pour copier des dépendances privées dans un répertoire local avant de déployer votre application, vous pouvez utiliser la commande pip install avec l'indicateur -t DIRECTORY. Pour ce faire, procédez comme suit :

  1. Copiez votre dépendance dans un répertoire local :

    pip install -t DIRECTORY DEPENDENCY
  2. Ajoutez un fichier __init__.py vide au répertoire DIRECTORY pour le transformer en module.

  3. Importez depuis ce module pour utiliser votre dépendance :

    import DIRECTORY.DEPENDENCY

Packages pré-installés

Les packages Python suivants sont automatiquement installés avec votre fonction lors du déploiement. Si vous utilisez l'un de ces packages dans le code de votre fonction, nous vous recommandons d'inclure les versions suivantes dans votre fichier requirements.txt :

aiohttp==3.6.2
async-timeout==3.0.1
attrs==19.3.0
cachetools==4.1.1
certifi==2020.6.20
chardet==3.0.4
click==7.1.2
Flask==1.1.2
google-api-core==1.21.0
google-api-python-client==1.10.0
google-auth==1.19.2
google-auth-httplib2==0.0.4
google-cloud-core==1.3.0
google-cloud-trace==0.23.0
googleapis-common-protos==1.52.0
grpcio==1.30.0
httplib2==0.18.1
idna==2.9
itsdangerous==1.1.0
Jinja2==2.11.2
MarkupSafe==1.1.1
multidict==4.7.6
opencensus==0.7.9
opencensus-context==0.1.1
pip==20.1.1
protobuf==3.12.2
pyasn1==0.4.8
pyasn1-modules==0.2.8
pytz==2020.1
PyYAML==5.3.1
requests==2.24.0
rsa==4.6
setuptools==47.3.1
six==1.15.0
uritemplate==3.0.1
urllib3==1.25.9
Werkzeug==1.0.1
wheel==0.34.2
wrapt==1.12.1
yarl==1.5.1

L'environnement d'exécution Python inclut également un certain nombre de packages système. Si votre fonction utilise une dépendance nécessitant un package système non répertorié, vous pouvez demander un package.