Il existe deux façons de spécifier des dépendances pour les Cloud Functions écrites dans
Python: en utilisant la classe de commande pip
requirements.txt
ou empaqueter 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 votre
dépendances, comme indiqué 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
le requirements.txt
référence.
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 lorsque la fonction est créée, nous vous recommandons que vous l’incluez comme 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. Ce est utile si votre dépendance n'est pas disponible via la commande gestionnaire de packages ou si la connexion Internet de votre environnement Cloud Functions l'accès 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.