Instructions et exigences de configuration de l'atelier
Protégez votre compte et votre progression. Utilisez toujours une fenêtre de navigation privée et les identifiants de l'atelier pour exécuter cet atelier.

Développement d'applications : Développer un service de backend – Python

Atelier 2 heures universal_currency_alt 5 crédits show_chart Avancé
info Cet atelier peut intégrer des outils d'IA pour vous accompagner dans votre apprentissage.
Ce contenu n'est pas encore optimisé pour les appareils mobiles.
Pour une expérience optimale, veuillez accéder à notre site sur un ordinateur de bureau en utilisant un lien envoyé par e-mail.

Présentation

Google App Engine vous permet de gérer les ressources depuis la ligne de commande, de déboguer le code source en production et d'exécuter les backends d'API. Cet atelier traite en particulier du service de backend, de la mise en place des services et API Pub/Sub, Natural Language et Spanner pour recueillir et analyser les commentaires et les scores à partir d'une application Quiz en ligne.

Objectifs

Dans cet atelier, vous allez réaliser les tâches suivantes :

  • Créer et publier des messages dans un sujet Cloud Pub/Sub

  • Créer un abonnement au sujet pour recevoir les messages dans une application de nœud de calcul distincte

  • Utiliser l'API Cloud Natural Language Machine Learning

  • Créer et configurer une instance de base de données Cloud Spanner, puis ajouter des données dans la base de données

Prérequis

Prérequis de l'atelier

Pour chaque atelier, nous vous attribuons un nouveau projet Google Cloud et un nouvel ensemble de ressources pour une durée déterminée, sans frais.

  1. Connectez-vous à Qwiklabs dans une fenêtre de navigation privée.

  2. Vérifiez le temps imparti pour l'atelier (par exemple : 01:15:00) : vous devez pouvoir le terminer dans ce délai.
    Une fois l'atelier lancé, vous ne pouvez pas le mettre en pause. Si nécessaire, vous pourrez le redémarrer, mais vous devrez tout reprendre depuis le début.

  3. Lorsque vous êtes prêt, cliquez sur Démarrer l'atelier.

  4. Notez vos identifiants pour l'atelier (Nom d'utilisateur et Mot de passe). Ils vous serviront à vous connecter à Google Cloud Console.

  5. Cliquez sur Ouvrir la console Google.

  6. Cliquez sur Utiliser un autre compte, puis copiez-collez les identifiants de cet atelier lorsque vous y êtes invité.
    Si vous utilisez d'autres identifiants, des messages d'erreur s'afficheront ou des frais seront appliqués.

  7. Acceptez les conditions d'utilisation et ignorez la page concernant les ressources de récupération des données.

Activer Google Cloud Shell

Google Cloud Shell est une machine virtuelle qui contient de nombreux outils pour les développeurs. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud.

Google Cloud Shell vous permet d'accéder à vos ressources Google Cloud grâce à une ligne de commande.

  1. Dans la barre d'outils située en haut à droite dans la console Cloud, cliquez sur le bouton "Ouvrir Cloud Shell".

    Icône Cloud Shell encadrée

  2. Cliquez sur Continuer.

Le provisionnement et la connexion à l'environnement prennent quelques instants. Une fois connecté, vous êtes en principe authentifié et le projet est défini sur votre ID_PROJET. Par exemple :

ID de projet mis en évidence dans le terminal Cloud Shell

gcloud est l'outil de ligne de commande pour Google Cloud. Il est préinstallé sur Cloud Shell et permet la complétion par tabulation.

  • Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
gcloud auth list

Résultat :

Credentialed accounts: - @.com (active)

Exemple de résultat :

Credentialed accounts: - google1623327_student@qwiklabs.net
  • Vous pouvez lister les ID de projet à l'aide de cette commande :
gcloud config list project

Résultat :

[core] project =

Exemple de résultat :

[core] project = qwiklabs-gcp-44776a13dea667a6 Remarque : Pour consulter la documentation complète sur gcloud, accédez au guide de présentation de la gcloud CLI.

Préparer l'application Quiz

Dans cette section, vous allez accéder à Cloud Shell et saisir des commandes pour :

  • cloner le dépôt git contenant l'application Quiz ;

  • configurer des variables d'environnement ;

  • exécuter l'application.

Cloner le code source dans Cloud Shell

  1. Clonez le dépôt pour l'atelier :

    git clone https://github.com/GoogleCloudPlatform/training-data-analyst
  2. Créez un lien symbolique qui servira de raccourci vers le répertoire de travail :

    ln -s ~/training-data-analyst/courses/developingapps/v1.3/python/pubsub-languageapi-spanner ~/pubsub-languageapi-spanner

Configurer et exécuter l'application Quiz

Dans cette section, vous allez ouvrir deux fenêtres Cloud Shell, l'une pour la partie Web de l'application Quiz, l'autre pour la partie nœud de calcul de l'application qui gère la console.

  1. Changez de répertoire de travail :

    cd ~/pubsub-languageapi-spanner/start
  2. Exécutez un script pour configurer l'application Web :

    Ce fichier de script :

    • crée et configure un compte de service GCP pour permettre à votre application d'accéder aux services GCP ;

    • crée une application App Engine ;

    • exporte les variables d'environnement GCLOUD_PROJECT, GCLOUD_BUCKET et GOOGLE_APPLICATION_CREDENTIALS ;

    • crée un environnement Python isolé virtualenv pour Python 3 et l'active ;

    • met à jour pip, puis exécute la commande pip install -r requirements.txt ;

    • crée des entités dans Cloud Datastore ;

    • affiche l'ID du projet Google Cloud Platform.

    . prepare_web_environment.sh
  3. Exécutez l'application Web :

    python run_server.py

    Une fois l'application en cours d'exécution, un message semblable à l'exemple de résultat ci-dessous s'affiche :

    Exemple de résultat :

    * Running on http://127.0.0.1:8080/ (Press CTRL+C to quit) * Restarting with stat * Debugger is active! * Debugger PIN: 110-448-781 Remarque : Si vous recevez un message d'erreur indiquant que le compte de service n'a pas d'accès storage.buckets.get au bucket Google Cloud Storage, les autorisations n'ont peut-être pas encore été propagées au compte de service. Exécutez la commande Python jusqu'à ce qu'elle indique que le script est en cours d'exécution.
  4. Cliquez sur Open a new tab (Ouvrir un nouvel onglet) (+) à droite de l'onglet Cloud Shell pour ajouter une deuxième fenêtre Cloud Shell. Cette fenêtre exécute l'application du nœud de calcul (console).

  5. Dans la seconde fenêtre, modifiez le répertoire de travail :

    cd ~/pubsub-languageapi-spanner/start
  6. Exécutez l'application du nœud de calcul dans la seconde fenêtre Cloud Shell :

    . run_worker.sh

    Ce fichier de script :

    • exporte les variables d'environnement GCLOUD_PROJECT, GCLOUD_BUCKET et GOOGLE_APPLICATION_CREDENTIALS ;
    • active un environnement virtualenv pour Python 3 ;
    • exécute l'application du nœud de calcul python -m quiz.console.worker.

Vérifier l'application Quiz

  1. Dans Cloud Shell, cliquez sur Web preview > Preview on port 8080 (Aperçu sur le Web > Prévisualiser sur le port 8080) pour prévisualiser l'application Quiz.

    preview_on_port_8080.png

  2. Dans la barre de navigation, cliquez sur Take Test (Faire le test).

  3. Cliquez sur Places (Lieux).

  4. Répondez à la question.

    Une fois que vous avez répondu à la question, un dernier écran apparaît, vous invitant à laisser un commentaire.

    Vous pouvez saisir des informations dans le formulaire, mais le bouton Send Feedback (Envoyer des commentaires) ne fonctionne pas encore.

  5. Revenez à la première fenêtre Cloud Shell, puis appuyez sur Ctrl+c pour arrêter l'application Web.

Examiner le code de l'application Quiz

Au cours de cet atelier, vous allez afficher et modifier des fichiers. Vous pouvez utiliser les éditeurs de script installés sur Cloud Shell, tels que nano ou vim, ou encore l'éditeur de code intégré de Cloud Shell.

Cet atelier examine le code de l'application Quiz à l'aide de l'éditeur de code Cloud Shell.

Lancer l'éditeur de code Cloud Shell

Dans Cloud Shell, cliquez sur Open Editor (Ouvrir l'éditeur) pour lancer l'éditeur de code, puis sur Open in new window (Ouvrir dans une nouvelle fenêtre).

cloud-shell-editor.png

Examiner la structure du code de l'application GCP

  1. Accédez au dossier /pubsub-languageapi-spanner/start dans le panneau de l'explorateur de fichiers situé à gauche de l'éditeur.

  2. Sélectionnez le fichier pubsub.py dans le dossier .../quiz/gcp.

    Ce fichier contient un module permettant aux applications de publier des commentaires dans un sujet Cloud Pub/Sub et d'enregistrer un rappel pour recevoir des messages à partir d'un abonnement Cloud Pub/Sub.

  3. Sélectionnez le fichier languageapi.py dans le dossier .../quiz/gcp.

    Ce fichier contient un module permettant aux utilisateurs d'envoyer du texte à l'API Cloud Natural Language ML et de recevoir de celle-ci le résultat de l'analyse (score) des sentiments.

  4. Sélectionnez le fichier spanner.py.

    Ce fichier contient un module permettant aux utilisateurs d'enregistrer les commentaires et les données de réponse de l'API Natural Language dans une instance de base de données Cloud Spanner.

Examiner le code de l'application Web

  1. Sélectionnez le fichier api.py dans le dossier .../quiz/api.

    Le gestionnaire des messages POST envoyés à la route /api/quizzes/feedback/:quiz publie sur Pub/Sub les données de commentaires reçues du client.

  2. Sélectionnez le fichier worker.py dans le dossier .../quiz/console.

    Ce fichier s'exécute en tant qu'application de console distincte pour consommer les messages distribués à un abonnement Pub/Sub.

Utiliser Cloud Pub/Sub

Dans cette section, vous allez créer un sujet et un abonnement Cloud Pub/Sub dans votre projet Google Cloud Platform, publier un message et le récupérer.

Créer un sujet Cloud Pub/Sub

  1. Dans la console Cloud Platform, cliquez sur le menu de navigation > Pub/Sub > Topics (Sujets).

    nav_pubsub.png

  2. Cliquez sur Create a topic (Créer un sujet).

  3. Dans le champ Topic ID (ID du sujet), saisissez feedback, puis cliquez sur Create Topic (Créer un sujet).

Créer un abonnement Cloud Pub/Sub

  1. Revenez à la seconde fenêtre Cloud Shell, puis appuyez sur Ctrl+c pour arrêter l'application.

  2. Créez un abonnement Cloud Pub/Sub nommé worker-subscription pour le sujet feedback :

    gcloud pubsub subscriptions create worker-subscription --topic feedback

Publier un message dans un sujet Cloud Pub/Sub

Publiez un message "Hello World" dans le sujet feedback :

gcloud pubsub topics publish feedback --message "Hello World"

Récupérer un message à partir d'un abonnement Cloud Pub/Sub

Vous allez maintenant récupérer le message à partir du sujet feedback avec confirmation de réception automatique :

gcloud pubsub subscriptions pull worker-subscription --auto-ack

Sortie :

message_ack.png

Publier des messages sur Cloud Pub/Sub par programmation

Rédiger le code permettant de publier des messages sur Cloud Pub/Sub

Importer et utiliser le module Python Cloud Pub/Sub

Dans cette section, vous allez modifier ...quiz/gcp/pubsub.py afin qu'il effectue les tâches suivantes :

  1. Ouvrez le fichier ...quiz/gcp/pubsub.py dans l'éditeur.

  2. Chargez le module pubsub_v1 à partir du package google.cloud.

quiz/gcp/pubsub.py

# TODO: Load the Cloud Pub/Sub module from google.cloud import pubsub_v1 # END TODO
  1. Créez un client éditeur Cloud Pub/Sub.

# TODO: Create a Pub/Sub Publisher Client publisher = pubsub_v1.PublisherClient() # END TODO
  1. Récupérez le chemin d'accès complet faisant référence au sujet Pub/Sub feedback que vous avez créé précédemment.

# TODO: Create Topic Object to reference feedback topic topic_path = publisher.topic_path(project_id, 'feedback') # END TODO L'éditeur Cloud Shell n'est pas configuré pour utiliser la même version de Python que celle de l'application. Il est donc possible que lint signale de fausses erreurs.

Rédiger le code permettant de publier un message dans Cloud Pub/Sub

  1. Dans la fonction publish_feedback(feedback), publiez un message dans le sujet feedback.

quiz/gcp/pubsub.py, fonction publish_feedback(feedback)

# TODO: Publish the feedback object to the feedback topic payload = json.dumps(feedback, indent=2, sort_keys=True) data = payload.encode('utf-8') future = publisher.publish(topic_path, data=data) return future.result() # END TODO
  1. Enregistrez le fichier.

Rédiger le code qui exploite la fonctionnalité de publication Pub/Sub

  1. Dans le fichier .../quiz/api/api.py, chargez le module pubsub à partir du package quiz.gcp.

quiz/api/api.py

# TODO: Add pubsub to import list from quiz.gcp import datastore, pubsub # END TODO
  1. Dans la fonction publish_feedback(feedback), supprimez l'instruction d'espace réservé pass, appelez la fonction pubsub.publish_feedback(feedback), puis renvoyez une réponse au client indiquant que les commentaires ont été reçus.

quiz/api/api.py, fonction publish_feedback(feedback)

# TODO: Publish the feedback using your pubsub module, # return the result result = pubsub.publish_feedback(feedback) response = Response(json.dumps(result, indent=2, sort_keys=True)) response.headers['Content-Type'] = 'application/json' return response # END TODO
  1. Enregistrez le fichier.

Exécuter l'application et créer un message Pub/Sub

  1. Dans le premier onglet Cloud Shell, redémarrez l'application Web (si elle est en cours d'exécution, arrêtez-la et démarrez-la).

  2. Prévisualisez l'application Web.

  3. Cliquez sur Take Test (Faire le test).

  4. Cliquez sur Places (Lieux).

  5. Répondez à la question, sélectionnez une note, saisissez un commentaire, puis cliquez sur Send Feedback (Envoyer des commentaires).

  6. Dans la seconde fenêtre Cloud Shell, saisissez la commande suivante pour extraire un message de worker-subscription :

    gcloud pubsub subscriptions pull worker-subscription --auto-ack

    Sortie :

    worker-auto-ack.png

  7. Arrêtez l'application Web dans le premier onglet Cloud Shell.

S'abonner à des sujets Cloud Pub/Sub par programmation

Dans cette section, vous allez rédiger le code qui permet de créer un abonnement à un sujet Cloud Pub/Sub et de recevoir des notifications de message dans l'application de console du nœud de calcul.

Rédiger le code qui crée un abonnement Cloud Pub/Sub et permet de recevoir des messages

  1. Revenez au fichier ...quiz/gcp/pubsub.py.

  2. Déclarez un client abonné Cloud Pub/Sub.

/quiz/gcp/pubsub.py

# TODO: Create a Pub/Sub Subscriber Client sub_client = pubsub_v1.SubscriberClient() # END TODO
  1. Obtenez le chemin d'accès complet faisant référence à 'worker-subscription'.

# TODO: Create a Subscription object named # worker-subscription sub_path = sub_client.subscription_path(project_id, 'worker-subscription') # END TODO
  1. Accédez à la fonction pull_feedback(callback) et supprimez l'instruction d'espace réservé pass.

  2. Utilisez le client abonné pour créer l'abonnement au nœud de calcul, en invoquant le rappel lorsqu'un message est reçu.

/quiz/gcp/pubsub.py, fonction pull_feedback(callback)

# TODO: Subscribe to the worker-subscription, # invoking the callback sub_client.subscribe(sub_path, callback=callback) # END TODO
  1. Enregistrez le fichier.

Rédiger le code permettant d'utiliser la fonctionnalité subscribe de Pub/Sub

  1. Dans le fichier ...quiz/console/worker.py, chargez le module pubsub à partir du package quiz.gcp.

console/worker.py

# TODO: Load the pubsub, languageapi and spanner modules from # the quiz.gcp package from quiz.gcp import pubsub # END TODO
  1. Dans la fonction pubsub_callback(message), accusez réception du message.

console/worker.py, fonction pubsub_callback(message)

# TODO: Acknowledge the message message.ack() # END TODO
  1. Consignez le message dans la console.

# TODO: Log the message log.info('Message received') log.info(message) # END TODO
  1. Dans la fonction main(), enregistrez la fonction handler en tant que rappel d'abonnement Pub/Sub.

console/worker.py, fonction main()

# TODO: Register the callback pubsub.pull_feedback(pubsub_callback) # END TODO
  1. Enregistrez le fichier.

Exécuter l'application Web et l'application du nœud de calcul, et créer un message Pub/Sub

  1. Dans la première fenêtre Cloud Shell, démarrez l'application Web si elle n'est pas déjà en cours d'exécution.

    python run_server.py
  2. Dans la seconde fenêtre Cloud Shell, démarrez l'application du nœud de calcul.

    . run_worker.sh
  3. Dans Cloud Shell, cliquez sur Web preview > Preview on port 8080 (Aperçu sur le Web > Prévisualiser sur le port 8080) pour prévisualiser l'application Quiz.

  4. Cliquez sur Take Test (Faire le test).

  5. Cliquez sur Places (Lieux).

  6. Répondez à la question, sélectionnez une note, saisissez un commentaire, puis cliquez sur Send Feedback (Envoyer les commentaires).

  7. Revenez à la deuxième fenêtre Cloud Shell.

    L'application du nœud de calcul doit normalement indiquer qu'elle a reçu le message de commentaire via son gestionnaire et afficher les détails de celui-ci dans la fenêtre. Le message lui-même est tronqué.

    INFO:root:Worker starting... INFO:root:Message received INFO:root:Message { data: b'{\n "email": "app.dev.student@example.org",\n "fee...' ordering_key: '' attributes: {} }
  8. Arrêtez l'application Web et l'application de console.

Utiliser l'API Cloud Natural Language

Dans cette section, vous allez rédiger le code qui effectue l'analyse des sentiments sur les commentaires envoyés par les utilisateurs.

Rédiger le code qui appelle l'API Cloud Natural Language

  1. Dans l'éditeur, accédez en haut du fichier ...quiz/gcp/languageapi.py.

  2. Chargez le module language à partir du package google.cloud.

quiz/gcp/languageapi.py

# TODO: Import the language module from google.cloud import language_v1 # END TODO
  1. Créez un objet client Cloud Natural Language.

# TODO: Create the Language API client lang_client = language_v1.LanguageServiceClient() # END TODO
  1. Accédez à la fonction analyze(text), puis créez un objet Document à transmettre au client Natural Language en attribuant le texte du commentaire au paramètre content.

quiz/gcp/languageapi.py, fonction analyze(text)

# TODO: Create a Document object doc = language_v1.types.Document(content=text, type_='PLAIN_TEXT') # END TODO
  1. Utilisez l'objet client Natural Language pour analyser le sentiment du document.

# TODO: Analyze the sentiment sentiment = lang_client.analyze_sentiment( document=doc).document_sentiment # END TODO
  1. Renvoyez ensuite le score des sentiments à partir de l'API Natural Language.

# TODO: Return the sentiment score return sentiment.score # END TODO
  1. Enregistrez le fichier.

Rédiger le code qui exploite les fonctionnalités de l'API Natural Language

  1. Dans le fichier .../quiz/console/worker.py, ajoutez languageapi à l'instruction d'importation.

console/worker.py

# TODO: Load the pubsub, languageapi and spanner modules from # from the quiz.gcp package from quiz.gcp import pubsub, languageapi # END TODO
  1. Dans la fonction pubsub_callback(message), et après le code existant, procédez à la détection des sentiments dans les commentaires.

console/worker.py, function pubsub_callback(message)

# TODO: Use the languageapi module to # analyze the sentiment score = languageapi.analyze(str(data['feedback'])) # END TODO
  1. Consignez le score dans la console.

# TODO: Log the sentiment score log.info('Score: {}'.format(score)) # END TODO
  1. Attribuez une nouvelle propriété de score à l'objet feedback.

# TODO: Assign the sentiment score to # a new score property data['score'] = score # END TODO
  1. Enregistrez le fichier.

Exécuter l'application Web et l'application du nœud de calcul, et tester l'API Natural Language

  1. Revenez à la première fenêtre Cloud Shell.
  2. Exécutez l'application Web.
  3. Accédez à la seconde fenêtre Cloud Shell.
  4. Redémarrez l'application du nœud de calcul.
  5. Prévisualisez l'application Web.
  6. Cliquez sur Take Test (Faire le test).
  7. Cliquez sur Places (Lieux).
  8. Répondez aux questions, sélectionnez une note, saisissez un commentaire, puis cliquez sur Send Feedback (Envoyer des commentaires).
  9. Revenez à la deuxième fenêtre Cloud Shell.

L'application du nœud de calcul a normalement appelé l'API Cloud Natural Language et affiché le score obtenu à l'analyse des sentiments dans la console.

sentiment-score.png

  1. Arrêtez l'application Web et l'application de console.

Faire persister les données dans Cloud Spanner

Dans cette section, vous allez créer une instance, une base de données et une table Cloud Spanner. Ensuite, vous allez rédiger le code faisant persister les données de commentaires dans la base de données.

Créer une instance Cloud Spanner

  1. Revenez à Cloud Console, puis cliquez sur le menu de navigation > Spanner > Create instance (Créer une instance).

  2. Dans le champ Instance name (Nom de l'instance), saisissez quiz-instance.

  3. Dans la section Configuration, sélectionnez la région us-central1.

  4. Cliquez sur Create (Créer).

Créer une base de données et une table Cloud Spanner

  1. Sur la page Instance Details (Détails de l'instance) de quiz-instance, cliquez sur Create database (Créer une base de données).

  2. Dans le champ Database name (Nom de la base de données), saisissez quiz-database.

  3. Sous Define your schema (Définir votre schéma), saisissez l'instruction SQL suivante dans le champ DDL statements (Instructions LDD) :

CREATE TABLE Feedback ( feedbackId STRING(100) NOT NULL, email STRING(100), quiz STRING(20), feedback STRING(MAX), rating INT64, score FLOAT64, timestamp INT64 ) PRIMARY KEY (feedbackId);
  1. Cliquez sur Create (Créer).

database.png

Rédiger le code faisant persister les données dans Cloud Spanner

  1. Revenez à l'éditeur de code et accédez en haut du fichier .../quiz/gcp/spanner.py.

  2. Chargez le module spanner à partir du package google.cloud.

quiz/gcp/spanner.py

# TODO: Import the spanner module from google.cloud import spanner # END TODO
  1. Créez un client Cloud Spanner.

# TODO: Create a spanner Client spanner_client = spanner.Client() # END TODO
  1. Obtenez une référence à l'instance Spanner.

# TODO: Get a reference to the Cloud Spanner quiz-instance instance = spanner_client.instance('quiz-instance') # END TODO
  1. Obtenez une référence à la base de données Spanner.

# TODO: Get a referent to the Cloud Spanner quiz-database database = instance.database('quiz-database') # END TODO
  1. Accédez à la fonction saveFeedback(data).

  2. Créez un objet batch de base de données à l'aide d'un bloc with. Un tel objet permet d'effectuer plusieurs opérations pour une base de données Spanner.

quiz/gcp/spanner.py, fonction save_feedback(data)

# TODO: Create a batch object for database operations with database.batch() as batch: # END TODO
  1. Créez une clé pour l'entrée de commentaires à partir des propriétés email, quiz et timestamp issues des données. La fonction reverse_email(...) utilise l'adresse e-mail d'entrée pour créer une chaîne inversée servant de clé primaire. Par exemple, app.dev.student@example.com est converti en com_example_student_dev_app.

# TODO: Create a key for the record # from the email, quiz and timestamp feedback_id = '{}_{}_{}'.format( reverse_email(data['email']), data['quiz'], data['timestamp']) # END TODO
  1. Utilisez l'objet batch pour insérer un enregistrement, en utilisant un ensemble de colonnes et de valeurs.

# TODO: Use the batch to insert a record # into the feedback table # This needs the columns and values batch.insert( table='feedback', columns=( 'feedbackId', 'email', 'quiz', 'timestamp', 'rating', 'score', 'feedback' ), values=[ ( feedback_id, data['email'], data['quiz'], data['timestamp'], data['rating'], data['score'], data['feedback'] ) ] ) # END TODO
  1. Enregistrez le fichier.

Rédiger le code qui exploite les fonctionnalités de Cloud Spanner

  1. Dans le fichier .../quiz/console/worker.py, chargez le module spanner.

quiz/console/worker.py

# TODO: Load the pubsub, languageapi and spanner modules # from the quiz.gcp package from quiz.gcp import pubsub, languageapi, spanner # END TODO
  1. Après le code existant dans la fonction pubsub_callback(message), enregistrez les commentaires dans Spanner.

quiz/console/worker.py, fonction pubsub_callback(message)

# TODO: Use the spanner module to save the feedback spanner.save_feedback(data) # END TODO
  1. Dans la console, consignez un message indiquant que les commentaires ont été enregistrés.

# TODO: Log a message to say the feedback # has been saved log.info('Feedback saved') # END TODO
  1. Enregistrez le fichier.

Exécuter l'application Web et l'application du nœud de calcul, et tester Cloud Spanner

  1. Enregistrez tous les fichiers, puis redémarrez l'application Web dans la première fenêtre Cloud Shell.
  2. Redémarrez l'application du nœud de calcul dans la deuxième fenêtre Cloud Shell.
  3. Prévisualisez l'application Web.
  4. Cliquez sur Take Test > Places (Faire le test > Lieux).
  5. Répondez aux questions, sélectionnez une note, saisissez un commentaire, puis cliquez sur Send Feedback (Envoyer des commentaires).
  6. Revenez à la deuxième fenêtre Cloud Shell.

Vous devez constater que l'application du nœud de calcul a appelé l'API Cloud Spanner et affiché le message dans la fenêtre de la console.

feedback-saved.png

  1. Revenez à Cloud Platform Console, puis cliquez sur le menu de navigation > Spanner.

  2. Sélectionnez quiz-instance > quiz-database > Query (Requête).

  3. Pour exécuter une requête, saisissez SELECT * FROM Feedback dans le champ Query (Requête), puis cliquez sur Run query (Exécuter la requête).

SELECT * FROM Feedback

La base de données Cloud Spanner doit normalement contenir la nouvelle entrée de commentaires, y compris les données de message provenant de Cloud Pub/Sub, ainsi que le score provenant de l'API Cloud Natural Language.

database-query.png

Terminer l'atelier

Une fois l'atelier terminé, cliquez sur Terminer l'atelier. Google Cloud Skills Boost supprime les ressources que vous avez utilisées, puis efface le compte.

Si vous le souhaitez, vous pouvez noter l'atelier. Sélectionnez un nombre d'étoiles, saisissez un commentaire, puis cliquez sur Envoyer.

Le nombre d'étoiles correspond à votre degré de satisfaction :

  • 1 étoile = très insatisfait(e)
  • 2 étoiles = insatisfait(e)
  • 3 étoiles = ni insatisfait(e), ni satisfait(e)
  • 4 étoiles = satisfait(e)
  • 5 étoiles = très satisfait(e)

Si vous ne souhaitez pas donner votre avis, vous pouvez fermer la boîte de dialogue.

Pour soumettre des commentaires, suggestions ou corrections, veuillez accéder à l'onglet Assistance.

Copyright 2026 Google LLC Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms de société et de produit peuvent être des marques des sociétés auxquelles ils sont associés.

Avant de commencer

  1. Les ateliers créent un projet Google Cloud et des ressources pour une durée déterminée.
  2. Les ateliers doivent être effectués dans le délai imparti et ne peuvent pas être mis en pause. Si vous quittez l'atelier, vous devrez le recommencer depuis le début.
  3. En haut à gauche de l'écran, cliquez sur Démarrer l'atelier pour commencer.

Utilisez la navigation privée

  1. Copiez le nom d'utilisateur et le mot de passe fournis pour l'atelier
  2. Cliquez sur Ouvrir la console en navigation privée

Connectez-vous à la console

  1. Connectez-vous à l'aide des identifiants qui vous ont été attribués pour l'atelier. L'utilisation d'autres identifiants peut entraîner des erreurs ou des frais.
  2. Acceptez les conditions d'utilisation et ignorez la page concernant les ressources de récupération des données.
  3. Ne cliquez pas sur Terminer l'atelier, à moins que vous n'ayez terminé l'atelier ou que vous ne vouliez le recommencer, car cela effacera votre travail et supprimera le projet.

Ce contenu n'est pas disponible pour le moment

Nous vous préviendrons par e-mail lorsqu'il sera disponible

Parfait !

Nous vous contacterons par e-mail s'il devient disponible

Un atelier à la fois

Confirmez pour mettre fin à tous les ateliers existants et démarrer celui-ci

Utilisez la navigation privée pour effectuer l'atelier

Le meilleur moyen d'exécuter cet atelier consiste à utiliser une fenêtre de navigation privée. Vous éviterez ainsi les conflits entre votre compte personnel et le compte temporaire de participant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.