Spécifier des dépendances

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 :

  1. Exécutez pip install -t lib my_module pour copier les dépendances dans un dossier local nommé lib.

  2. Ajoutez un fichier __init__.py vide au répertoire lib pour le transformer en module.

  3. 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

  1. Créez un environnement Python isolé :
    python3 -m venv env
    source env/bin/activate
  2. 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.

  1. Localisez votre installation de PowerShell.
  2. Cliquez avec le bouton droit sur le raccourci PowerShell et démarrez une session en tant qu'administrateur.
  3. Créez un environnement Python isolé.
    python -m venv env
    .\env\Scripts\activate
  4. 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 :

  1. Installez la bibliothèque cliente localement à l'aide de pip :

    pip install google-cloud-datastore

  2. 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
    
  3. 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.