Il existe deux manières de spécifier des dépendances pour Cloud Functions rédigées en Python: en utilisant le fichier requirements.txt
du gestionnaire de paquets pip ou en empaquetant les dépendances locales avec votre fonction.
La spécification des dépendances avec le fichier standard Pipfile/Pipfile.lock n'est actuellement pas prise en charge. Votre projet ne doit pas contenir ces fichiers.
Spécifier des dépendances avec pip
Dans Python, les dépendances sont gérées avec piprequirements.txt
et exprimées dans un fichier de métadonnées appelé .
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 ou redéployez votre fonction, Cloud Functions utilise pip pour télécharger et installer la dernière version de vos dépendances, comme déclaré dans le fichier requirements.txt
.
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
.
Pour éviter que votre compilation ne soit affectée par les modifications de version de dépendance, envisagez d'épingler vos packages de dépendance sur une version spécifique.
Voici un exemple de fichier requirements.txt
:
functions-framework requests==2.20.0 numpy
Le Functions Framework est une dépendance requise pour toutes les fonctions. Bien que Cloud Functions l'installe en votre nom lors de la création de la fonction, nous vous recommandons de l'inclure en tant que dépendance explicite pour plus de clarté.
Si votre fonction repose sur des dépendances privées, nous vous recommandons de mettre en miroir functions-framework
dans votre registre privé. Incluez la valeur functions-framework
mise en miroir en tant que dépendance à votre fonction pour éviter d'installer le package depuis l'Internet public.
Emballer 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 paquets 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 importer le code comme d'habitude à partir de localpackage
en utilisant l'instruction import
suivante.
# Code in main.py from localpackage import script
Notez qu'avec cette approche, aucun fichier setup.py
n'est exécuté. Les packages avec ces fichiers peuvent toujours être regroupés, mais peuvent ne pas s'exécuter correctement sur Cloud Functions.