ID de la région
LeREGION_ID
est un code abrégé que Google attribue en fonction de la région que vous sélectionnez lors de la création de votre application. Le code ne correspond pas à un pays ou une province, même si certains ID de région peuvent ressembler aux codes de pays et de province couramment utilisés. Pour les applications créées après février 2020, REGION_ID.r
est inclus dans les URL App Engine. Pour les applications existantes créées avant cette date, l'ID de région est facultatif dans l'URL.
En savoir plus sur les ID de région
Découvrez comment activer l'accès de Cloud Storage à votre application App Engine en langage Python, et comment créer, écrire, lire et répertorier des fichiers dans le bucket Cloud Storage.
Ce tutoriel part du principe que vous maîtrisez Python et que vous avez configuré votre environnement de développement.
Lorsque cet exemple est exécuté, il exécute un script et écrit le résultat dans le navigateur. Le script présente les fonctionnalités suivantes de la bibliothèque client Cloud Storage :
- Créer un fichier et écrire le fichier dans un bucket
- Lire le fichier et récupérer ses métadonnées
- Créer plusieurs fichiers, puis les répertorier à partir du bucket
- Répertorier les fichiers que vous venez d'ajouter au bucket
- Lire l'ensemble de fichiers
- Supprimer cet ensemble de fichiers
Objectifs
- Parcourir le projet Python pour découvrir l'organisation et les fichiers requis
- Comprendre le code pour se connecter à Cloud Storage
- Comprendre le code pour créer, écrire, lire, répertorier et supprimer des fichiers
- Comprendre le code des nouvelles tentatives
- Générer et tester l'application sur votre serveur de développement local
- Déployer l'application en production sur Google App Engine
Coûts
App Engine offre un niveau d'utilisation gratuit. Si votre utilisation totale d'App Engine est inférieure aux limites spécifiées dans le quota gratuit d'App Engine, ce tutoriel est gratuit.
Avant de commencer
Avant d'exécuter cet exemple, vous devez disposer d'un ID de projet, de l'outil de ligne de commande gcloud
et d'un bucket Cloud Storage :
Créez un projet dans la console Google Cloud ou récupérez l'ID d'un projet existant à partir de la console Google Cloud :
Installez et initialisez Google Cloud CLI :
Afficher les ID de projet dans la console Google Cloud avec gcloud
Depuis la ligne de commande, exécutez la commande suivante :
gcloud projects list
Cloner le projet de tutoriel
Pour cloner le projet :
Clonez la bibliothèque cliente et l'exemple d'application (démo) sur votre ordinateur local.
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
Vous pouvez également télécharger l'exemple dans un fichier zip et l'extraire.
Accédez au répertoire approprié dans le projet cloné ou téléchargé :
cd python-docs-samples/appengine/standard/storage/appengine-client
Installer les dépendances
L'outil virtualenv
vous permet de créer un environnement Python propre sur votre système.
Pour le développement d'App Engine, cela permet de garantir que le code que vous testez en local est semblable à l'environnement dans lequel votre code sera déployé. Pour en savoir plus, consultez la page Utiliser des bibliothèques tierces.
Pour installer virtualenv
et les dépendances de l'exemple :
macOS/Linux
- Si virtualenv n'est pas installé, utilisez
pip
afin de l'installer pour l'ensemble du système :sudo pip install virtualenv
- Créez un environnement Python isolé :
virtualenv 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 -t lib -r requirements.txt
Windows
Si vous avez installé la CLI Google Cloud, Python 2.7 devrait déjà être installé, généralement dans C:\python27_x64\
(pour les systèmes 64 bits). 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.
-
Essayez d'exécuter la commande
python
. Si le dossier Python est introuvable, ajoutez-le à la variable d'environnementPATH
.$env:Path += ";C:\python27_x64\"
- Si virtualenv n'est pas installé, utilisez
pip
afin de l'installer pour l'ensemble du système :python -m pip install virtualenv
- Créez un environnement Python isolé.
python -m virtualenv 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
python -m pip install -t lib -r requirements.txt
L'exemple de code que vous avez cloné ou téléchargé contient déjà un fichier appengine_config.py
. Ce fichier impose à App Engine l'utilisation du dossier lib
pour charger les dépendances localement et lors du déploiement.
Exécution locale
Pour exécuter l'exemple en local :
Dans le sous-répertoire du projet (
python-docs-samples/appengine/standard/storage/appengine-client
), exécutez l'application sur le serveur de développement local :python3 CLOUD_SDK_ROOT/bin/dev_appserver.py .
Attendez le message de réussite, qui ressemble à ceci :
INFO 2016-04-12 21:33:35,446 api_server.py:205] Starting API server at: http://localhost:36884 INFO 2016-04-12 21:33:35,449 dispatcher.py:197] Starting module "default" running at: http://localhost:8080 INFO 2016-04-12 21:33:35,449 admin_server.py:116] Starting admin server at: http://localhost:8000
Accédez à cette URL dans votre navigateur :
L'application s'exécutera au chargement de la page, affichant le résultat dans le navigateur afin d'indiquer ce qu'elle a exécuté. Le résultat ressemble à ceci :
Arrêtez le serveur de développement en appuyant sur Ctrl+C.
Tutoriel pour le fichier app.yaml
Le fichier app.yaml
spécifie les détails de la configuration de l'application :
Pour en savoir plus sur les options de configuration disponibles dans ce fichier, consultez la documentation de référence sur app.yaml.
Tutoriel pour les importations
Le fichier main.py
contient les importations types utilisées pour accéder à Cloud Storage via la bibliothèque cliente :
Vous avez besoin du module os
et de l'API app_identity
pour obtenir le nom du bucket par défaut au moment de l'exécution. Vous aurez besoin du nom de ce bucket pour toutes les opérations d'accès à Cloud Storage.
L'exemple utilise également le framework Web webapp2
.
Spécifier le bucket Cloud Storage
Avant toute opération dans Cloud Storage, vous devez fournir le nom du bucket. Pour ce faire, le moyen le plus simple consiste à utiliser le bucket par défaut de votre projet, qui peut être obtenu comme suit :
Écrire un fichier dans Cloud Storage
L'exemple suivant montre comment écrire dans le bucket :
Notez que lors de l'appel de open
pour l'ouverture du fichier en écriture, l'exemple spécifie certains en-têtes Cloud Storage qui écrivent des métadonnées personnalisées pour le fichier. Ces métadonnées peuvent être récupérées à l'aide de cloudstorage.stat
. Vous trouverez la liste des en-têtes compatibles dans la documentation de référence de cloudstorage.open
.
Notez également que l'en-tête x-goog-acl
n'est pas défini. Cela signifie que la liste de contrôle d'accès Cloud Storage par défaut pour la lecture publique va être appliquée à l'objet lors de son écriture dans le bucket.
Enfin, vous pouvez constater que l'appel close
ferme le fichier une fois l'écriture terminée. Si cet appel n'est pas émis, le fichier n'est pas écrit dans Cloud Storage. Sachez qu'après avoir appelé close
, vous ne pouvez plus rien ajouter au fichier. Si vous devez modifier un fichier, vous devrez le rouvrir en mode écriture. Les données seront alors écrasées et non ajoutées.
Lire un fichier à partir de Cloud Storage
L'exemple suivant montre comment lire un fichier à partir du bucket :
L'exemple montre comment afficher les lignes sélectionnées du fichier en cours de lecture (dans le cas présent, la ligne d'ouverture et les mille dernières lignes) à l'aide de seek
.
Notez qu'aucun mode n'est spécifié dans le code ci-dessus lorsque le fichier est ouvert en lecture. La valeur par défaut pour open
est le mode de lecture seule.
Répertorier le contenu du bucket
L'exemple de code montre comment parcourir un bucket comportant un grand nombre de fichiers, en utilisant les paramètres marker
et max_keys
pour parcourir une liste du contenu du bucket :
Notez que le nom de fichier complet est affiché comme une chaîne sans délimiteurs de répertoire.
Si vous souhaitez afficher le fichier avec une hiérarchie de répertoires plus reconnaissable, définissez le paramètre delimiter
sur le délimiteur de répertoires que vous souhaitez utiliser.
Supprimer des fichiers
L'exemple de code montre comment supprimer des fichiers, dans ce cas tous les fichiers ajoutés lors de l'exécution de l'application. Vous n'avez pas besoin d'effectuer cette opération dans votre code, car il ne s'agit que d'une fonctionnalité de nettoyage de cet exemple :
Déployer l'exemple
Pour déployer et exécuter l'exemple d'application dans App Engine :
Importez l'exemple d'application en exécutant la commande suivante à partir du répertoire
python-docs-samples/appengine/standard/storage/appengine-client
où se trouve le fichierapp.yaml
:gcloud app deploy
Indicateurs facultatifs :
- Incluez l'option
--project
pour spécifier un ID de projet de la console Google Cloud différent de celui que vous avez initialisé par défaut dans gcloud CLI. Exemple :--project [YOUR_PROJECT_ID]
- Incluez l'option
-v
pour spécifier un ID de version. Si vous omettez cet ID, un ID est généré automatiquement. Exemple :-v [YOUR_VERSION_ID]
- Incluez l'option
Une fois le déploiement terminé, vous pouvez afficher l'application sur
https://PROJECT_ID.REGION_ID.r.appspot.com
en exécutant la commande suivante :gcloud app browse
L'application
demo
s'exécute au chargement de la page, exactement comme lors de son exécution en local. Cependant, l'application va maintenant écrire et lire dans votre bucket Cloud Storage.
Pour en savoir plus sur le déploiement de l'application à partir de la ligne de commande, consultez la page Déployer une application Python 2.
Étapes suivantes
- Découvrez quelques concepts de base de Cloud Storage.
- Consultez la documentation de référence sur les fonctions de la bibliothèque cliente Cloud Storage.
- Consultez la documentation de référence sur la classe RetryParams.
- Documentation de référence sur le traitement des erreurs
- Découvrez des architectures de référence, des schémas et des bonnes pratiques concernant Google Cloud. Consultez notre Centre d'architecture cloud.