Les dépendances pour les applications Python sont déclarées dans un fichier requirements.txt
standard. Exemple :
Flask==MAJOR.MINOR.PATCH
google-cloud-storage
Remplacez MAJOR, MINOR et PATCH par les numéros de version Flask souhaités.
Lorsque vous déployez une application sur App Engine, les dépendances spécifiées dans le fichier requirements.txt
sont automatiquement installées avec votre application déployée. Vous pouvez utiliser n'importe quel package Python compatible avec Linux, y compris les packages qui nécessitent des extensions C natives.
Par défaut, App Engine met en cache les dépendances obtenues afin de réduire la durée de compilation. Pour installer une version non mise en cache de la dépendance, exécutez la commande suivante :
gcloud app deploy --no-cache
Dépendances privées avec Artifact Registry
Si vous devez héberger des dépendances privées pour votre application Python, vous pouvez utiliser un dépôt Artifact Registry Python.
Lors du déploiement de votre application, le processus de compilation génère automatiquement des identifiants Artifact Registry pour le compte de service Cloud Build. Vous n'avez donc pas besoin de générer d'identifiants supplémentaires. Pour inclure des dépendances privées, ajoutez l'URL Artifact Registry et les packages pertinents dans votre fichier requirements.txt
.
Pour spécifier plusieurs dépôts, utilisez un dépôt virtuel Artifact Registry pour contrôler en toute sécurité l'ordre dans lequel pip recherche vos dépôts. Exemple :
--index-url REPOSITORY_URL
sampleproject
Flask==MAJOR.MINOR.PATCH
google-cloud-storage
Remplacez REPOSITORY_URL par l'adresse du registre, par exemple :
https://REGION_ID-python.pkg.dev/PROJECT_ID/REPOSITORY_NAME/simple
Dépendances privées avec d'autres dépôts
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 copiés dans le répertoire de votre projet et importés avec le code du projet à l'aide du gestionnaire de packages pip.
Pour utiliser des dépendances privées, procédez comme suit :
Exécutez
pip install -t lib my_module
pour copier les dépendances dans un dossier local nommélib
.Ajoutez un fichier
__init__.py
vide au répertoirelib
pour le transformer en module.Importez le module dans votre application. Exemple :
import lib.my_module
Installer les dépendances en local
Lorsque vous développez et testez votre application en local, nous vous recommandons d'utiliser venv
pour isoler les dépendances de votre application des packages système. Ainsi, vous avez la garantie que les mêmes versions de ces dépendances seront utilisées sur votre ordinateur local et sur l'application déployée.
Pour utiliser venv
afin d'installer des dépendances, procédez comme suit :
macOS/Linux
- Créez un environnement Python isolé :
python3 -m venv env
source env/bin/activate
- Si vous n'êtes pas dans le répertoire qui contient l'exemple de code, accédez au répertoire qui contient l'exemple de code
hello_world
. Ensuite, installez les dépendances :cd YOUR_SAMPLE_CODE_DIR
pip install -r requirements.txt
Windows
Exécutez les packages Python à l'aide de PowerShell.
- Localisez votre installation de PowerShell.
- Cliquez avec le bouton droit sur le raccourci PowerShell et démarrez une session en tant qu'administrateur.
- Créez un environnement Python isolé.
python -m venv env
.\env\Scripts\activate
- Accédez au répertoire de votre projet et installez les dépendances : Si vous n'êtes pas dans le répertoire qui contient l'exemple de code, accédez au répertoire qui contient l'exemple de code
hello_world
. Ensuite, installez les dépendances :cd YOUR_SAMPLE_CODE_DIR
pip install -r requirements.txt
Cette démarche vous assure que lorsque vous exécutez votre application en local, seules les dépendances déclarées dans le fichier requirements.txt
sont disponibles.
Les dépendances installées par App Engine lors du déploiement sont basées sur le contenu du fichier requirements.txt
, et non sur le contenu du répertoire env/
.
Installer un framework Web
Vous devez utiliser un framework Web pour permettre à votre application de répondre aux requêtes Web. Vous pouvez utiliser n'importe quel framework Web Python, par exemple :
Pour utiliser un framework Web particulier, il vous suffit de l'ajouter à votre fichier requirements.txt
:
Flask==MAJOR.MINOR.PATCH
Installer un serveur WSGI
Certains frameworks Web offrent des serveurs WSGI intégrés. Cependant, peu d'entre eux sont adaptés à la diffusion du trafic de production. La plupart des applications Web utilisent un serveur WSGI autonome tel que Gunicorn, uWSGI ou Waitress. Pour en savoir plus sur l'installation, la configuration et l'utilisation d'un serveur WSGI, consultez la section Démarrage de l'application.
Installer les bibliothèques clientes Cloud
La bibliothèque cliente Cloud pour Python permet d'accéder facilement aux services Google Cloud. De ce fait, la quantité de code récurrent que vous devez développer est fortement réduite. La bibliothèque fournit des abstractions d'API de haut niveau, ce qui implique que les API sont plus faciles à comprendre et à utiliser. Cette bibliothèque accepte les idiomes de Python, fonctionne bien avec la bibliothèque standard et s'intègre mieux à votre base de code.
Par exemple, vous pouvez installer la bibliothèque cliente Python associée à Datastore ou Cloud Storage afin d'intégrer ces services à votre application.
Pour installer la bibliothèque cliente Python pour Cloud Datastore :
Installez la bibliothèque cliente localement à l'aide de
pip
:pip install google-cloud-datastore
Configurez l'authentification. Vous pouvez configurer les bibliothèques clientes Cloud pour Python afin de gérer l'authentification automatiquement. La bibliothèque cliente peut également gérer automatiquement l'authentification en local par le biais de Google Cloud CLI.
gcloud auth login
Utilisez la documentation de référence sur les bibliothèques clientes pour Datastore pour rendre le service Cloud Datastore compatible avec votre application.
Pour obtenir la liste complète des bibliothèques clientes Cloud pour Python compatibles avec les services Google Cloud, consultez la page API et bibliothèques Python.