ID de la région
Le REGION_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
Utilisez les informations des utilisateurs authentifiés pour stocker et récupérer les données spécifiques à l'utilisateur, et personnalisez l'expérience de chaque utilisateur grâce à votre service Web.
Lors d'une étape précédente, vous avez mis à jour le service Web afin d'afficher les dix dernières requêtes de tous les utilisateurs. Ici, vous allez utiliser les informations des utilisateurs authentifiés pour mettre à jour votre service Web et n'afficher que la liste des dix dernières requêtes effectuées par l'utilisateur actuellement authentifié.
Avant de commencer
Si vous avez suivi toutes les étapes précédentes de ce guide, ignorez cette section. Sinon, effectuez l'une des opérations suivantes :
Commencez par Créer une application Python 3 et suivez toutes les étapes menant à celle-ci.
Si vous avez déjà un projet Google Cloud, vous pouvez continuer en téléchargeant une copie du service Web et en ajoutant Firebase :
Téléchargez le dépôt de l'exemple d'application à l'aide de Git :
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
Vous pouvez également télécharger l'exemple en tant que fichier zip et l'extraire.
Accédez au répertoire contenant une copie des fichiers de l'étape précédente :
cd python-docs-samples/appengine/standard_python3/building-an-app/building-an-app-3
Ajoutez Firebase à votre projet Google Cloud et service Web.
Stocker et récupérer les données spécifiques à l'utilisateur
Vous pouvez indiquer que les données sont associées à un certain utilisateur grâce aux ancêtres Firestore en mode Datastore (Datastore), qui vous permettent d'organiser vos données Datastore de manière hiérarchique.
Pour ce faire, procédez comme suit :
Mettez à jour vos méthodes
store_time
etfetch_time
pour utiliser les ancêtres Datastore afin de stocker et récupérer des entitésvisit
:Chaque entité
visit
dispose maintenant d'un ancêtre auquel elle est associée. Ces ancêtres sont des entités Datastore qui représentent des utilisateurs authentifiés individuels. La clé de chaque ancêtre comprend le genreUser
et un ID personnalisé qui correspond à l'adresse e-mail de l'utilisateur authentifié. Vous utilisez la clé d'ancêtre pour n'interroger la base de données que pour les périodes liées à un utilisateur spécifique.Mettez à jour l'appel de méthode
store_times
dans votre méthoderoot
, puis déplacez-le dans l'expression conditionnelleid_token
pour qu'il ne s'exécute que si le serveur a authentifié un utilisateur :
Configurer des index
Datastore effectue des requêtes basées sur des index. Pour les entités simples, Datastore génère automatiquement ces index. Toutefois, il ne peut pas les générer automatiquement pour les entités plus complexes, y compris celles disposant d'ancêtres.
Pour cette raison, vous devez créer manuellement un index pour les entités visit
afin de permettre à Datastore d'effectuer des requêtes impliquant des entités visit
.
Pour créer un index pour les entités visit
, procédez comme suit :
Créez un fichier
index.yaml
dans le répertoire racine de votre projet, par exemplebuilding-an-app
, et ajoutez l'index suivant :Déployez vos index
index.yaml
dans Datastore en exécutant la commande suivante et en suivant les invites :gcloud datastore indexes create index.yaml
Datastore peut mettre un certain temps à créer les index. Si vous créez les index avant de déployer votre service Web sur App Engine, vous pouvez tester localement le service à l'aide de ces derniers et éviter les exceptions pouvant survenir pour les requêtes nécessitant un index en cours de création.
Pour plus d'informations sur la création d'index Datastore, consultez la page Configurer des index Datastore.
Tester votre service Web
Testez votre service Web en l'exécutant localement dans un environnement virtuel :
Exécutez la commande suivante dans le répertoire principal de votre projet pour lancer votre service Web. Si vous n'avez pas configuré d'environnement virtuel pour les tests en local, consultez la section Tester votre service Web.
python main.py
Saisissez l'adresse suivante dans votre navigateur Web pour afficher votre service Web :
http://localhost:8080
Déployer votre service Web
Maintenant que Datastore fonctionne localement, vous pouvez redéployer votre service Web sur App Engine.
Exécutez la commande suivante à partir du répertoire racine de votre projet, où se trouve le fichier app.yaml
:
gcloud app deploy
Tout le trafic est automatiquement acheminé vers la nouvelle version que vous avez déployée.
Pour plus d'informations sur la gestion des versions, consultez la documentation sur la gestion des services et des versions.
Afficher votre service
Pour lancer rapidement votre navigateur et accéder à votre service Web à l'adresse https://PROJECT_ID.REGION_ID.r.appspot.com
, exécutez la commande suivante :
gcloud app browse
Étapes suivantes
Félicitations ! Vous venez de créer un service Web qui utilise le stockage de données Datastore et l'authentification Firebase pour fournir une page Web personnalisée aux utilisateurs authentifiés.
Vous pouvez maintenant nettoyer votre projet en arrêtant ou en désactivant la facturation.