GSP094

Présentation
Le service Pub/Sub permet aux applications d'échanger des messages de manière fiable, rapide et asynchrone. À cette fin, un fournisseur de données publie des messages dans un sujet Cloud Pub/Sub. Un client abonné crée ensuite un abonnement associé à ce sujet et utilise les messages de l'abonnement. Cloud Pub/Sub conserve les messages qui n'ont pas pu être distribués de manière fiable pendant sept jours au maximum.
Dans cet atelier, vous allez apprendre à publier des messages avec Pub/Sub à l'aide de la bibliothèque cliente Python.
Objectifs de l'atelier
Dans cet atelier, vous allez effectuer les opérations suivantes :
- Découvrir les principes de base de Pub/Sub
- Créer, supprimer et lister des abonnements et des sujets Pub/Sub
- Publier des messages dans un sujet
- Utiliser un abonnement pull afin de consulter des messages de sujets spécifiques
Préparation
Avant de cliquer sur le bouton "Démarrer l'atelier"
Lisez ces instructions. Les ateliers sont minutés, et vous ne pouvez pas les mettre en pause. Le minuteur, qui démarre lorsque vous cliquez sur Démarrer l'atelier, indique combien de temps les ressources Google Cloud resteront accessibles.
Cet atelier pratique vous permet de suivre les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Des identifiants temporaires vous sont fournis pour vous permettre de vous connecter à Google Cloud le temps de l'atelier.
Pour réaliser cet atelier :
- Vous devez avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome).
Remarque : Ouvrez une fenêtre de navigateur en mode incognito (recommandé) ou de navigation privée pour effectuer cet atelier. 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.
- Vous disposez d'un temps limité. N'oubliez pas qu'une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Remarque : Utilisez uniquement le compte de participant pour cet atelier. Si vous utilisez un autre compte Google Cloud, des frais peuvent être facturés à ce compte.
Démarrer l'atelier et se connecter à la console Google Cloud
-
Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, une boîte de dialogue s'affiche pour vous permettre de sélectionner un mode de paiement.
Sur la gauche, vous trouverez le panneau "Détails concernant l'atelier", qui contient les éléments suivants :
- Le bouton "Ouvrir la console Google Cloud"
- Le temps restant
- Les identifiants temporaires que vous devez utiliser pour cet atelier
- Des informations complémentaires vous permettant d'effectuer l'atelier
-
Cliquez sur Ouvrir la console Google Cloud (ou effectuez un clic droit et sélectionnez Ouvrir le lien dans la fenêtre de navigation privée si vous utilisez le navigateur Chrome).
L'atelier lance les ressources, puis ouvre la page "Se connecter" dans un nouvel onglet.
Conseil : Réorganisez les onglets dans des fenêtres distinctes, placées côte à côte.
Remarque : Si la boîte de dialogue Sélectionner un compte s'affiche, cliquez sur Utiliser un autre compte.
-
Si nécessaire, copiez le nom d'utilisateur ci-dessous et collez-le dans la boîte de dialogue Se connecter.
{{{user_0.username | "Username"}}}
Vous trouverez également le nom d'utilisateur dans le panneau "Détails concernant l'atelier".
-
Cliquez sur Suivant.
-
Copiez le mot de passe ci-dessous et collez-le dans la boîte de dialogue Bienvenue.
{{{user_0.password | "Password"}}}
Vous trouverez également le mot de passe dans le panneau "Détails concernant l'atelier".
-
Cliquez sur Suivant.
Important : Vous devez utiliser les identifiants fournis pour l'atelier. Ne saisissez pas ceux de votre compte Google Cloud.
Remarque : Si vous utilisez votre propre compte Google Cloud pour cet atelier, des frais supplémentaires peuvent vous être facturés.
-
Accédez aux pages suivantes :
- Acceptez les conditions d'utilisation.
- N'ajoutez pas d'options de récupération ni d'authentification à deux facteurs (ce compte est temporaire).
- Ne vous inscrivez pas à des essais sans frais.
Après quelques instants, la console Cloud s'ouvre dans cet onglet.
Remarque : Pour accéder aux produits et services Google Cloud, cliquez sur le menu de navigation ou saisissez le nom du service ou du produit dans le champ Recherche.
Activer Cloud Shell
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. Cloud Shell vous permet d'accéder via une ligne de commande à vos ressources Google Cloud.
-
Cliquez sur Activer Cloud Shell
en haut de la console Google Cloud.
-
Passez les fenêtres suivantes :
- Accédez à la fenêtre d'informations de Cloud Shell.
- Autorisez Cloud Shell à utiliser vos identifiants pour effectuer des appels d'API Google Cloud.
Une fois connecté, vous êtes en principe authentifié et le projet est défini sur votre ID_PROJET : . Le résultat contient une ligne qui déclare l'ID_PROJET pour cette session :
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
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.
- (Facultatif) Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
gcloud auth list
- Cliquez sur Autoriser.
Résultat :
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (Facultatif) Vous pouvez lister les ID de projet à l'aide de cette commande :
gcloud config list project
Résultat :
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Remarque : Pour consulter la documentation complète sur gcloud
, dans Google Cloud, accédez au guide de présentation de la gcloud CLI.
Tâche 1 : Créer un environnement virtuel
Les environnements virtuels Python permettent d'isoler l'installation d'un package du système.
- Installez l'environnement
virtualenv
:
sudo apt-get install -y virtualenv
- Créez l'environnement virtuel :
python3 -m venv venv
- Activez l'environnement virtuel :
source venv/bin/activate
Tâche 2 : Installer la bibliothèque cliente
- Exécutez la commande suivante pour installer la bibliothèque cliente :
pip install --upgrade google-cloud-pubsub
- Récupérez l'exemple de code en clonant le dépôt GitHub :
git clone https://github.com/googleapis/python-pubsub.git
- Accédez au répertoire :
cd python-pubsub/samples/snippets
Tâche 3 : Maîtriser les principes de base de Pub/Sub
Pub/Sub est un service de messagerie asynchrone à l'échelle mondiale. Avec Pub/Sub, trois termes reviennent souvent : sujets, publication (par des diffuseurs) et abonnement.
Un sujet est une chaîne partagée qui permet aux applications de communiquer entre elles via un fil de discussion commun.
Les éditeurs transfèrent (ou publient) un message dans un sujet Pub/Sub. Les abonnés souscrivent ensuite un abonnement à ce fil de discussion pour récupérer les messages à partir du sujet ou configurer des webhooks et recevoir directement les messages de l'abonnement. Les abonnés doivent accuser réception de chaque message pendant une période configurable.
Pour résumer, un éditeur crée et envoie des messages dans un sujet. Un abonné crée un abonnement associé à un sujet pour recevoir des messages de celui-ci.
Pub/Sub dans Google Cloud
Pub/Sub est préinstallé dans Cloud Shell. Par conséquent, aucune installation ni configuration ne sont requises pour commencer à utiliser le service. Dans cet atelier, vous allez utiliser un script Python pour créer le sujet et l'abonnement, puis afficher le message. Pour publier le message dans le sujet, vous utiliserez une commande gcloud.
Tâche 4 : Créer un sujet
Pour publier des données dans Pub/Sub, vous devez créer un sujet, puis lui associer un éditeur.
- Dans Cloud Shell, la variable d'environnement
GOOGLE_CLOUD_PROJECT
devrait automatiquement stocker votre ID de projet :
echo $GOOGLE_CLOUD_PROJECT
- Assurez-vous que la valeur de sortie correspond à l'ID de projet figurant dans vos DÉTAILS DE CONNEXION.
Le script publisher.py
montre comment réaliser des opérations de base sur des sujets avec l'API Cloud Pub/Sub. Pour afficher le contenu du script de l'éditeur, saisissez la commande suivante :
cat publisher.py
Remarque : Vous pouvez également utiliser les éditeurs de script shell installés sur Cloud Shell (tels que "nano" ou "vim") ou l'éditeur de code intégré de Cloud Shell pour afficher le fichier python-pubsub/samples/snippets/publisher.py
.
- Pour obtenir plus d'informations sur le script de l'éditeur, saisissez la commande suivante :
python publisher.py -h
Exemple de résultat :
usage: publisher.py [-h]
project
{list,create,delete,publish,publish-with-custom-attributes,publish-with-futures,publish-with-error-handler,publish-with-batch-settings}
...
This application demonstrates how to perform basic operations on topics
with the Cloud Pub/Sub API.
For more information, see the README.md under /pubsub and the documentation
at https://cloud.google.com/pubsub/docs.
positional arguments:
project Your Google Cloud project ID
{list,create,delete,publish,publish-with-custom-attributes,publish-with-futures,publish-with-error-handler,publish-with-batch-settings}
list Lists all Pub/Sub topics in the given project.
create Create a new Pub/Sub topic.
delete Deletes an existing Pub/Sub topic.
publish Publishes multiple messages to a Pub/Sub topic.
publish-with-custom-attributes
Publishes multiple messages with custom attributes to
a Pub/Sub topic.
publish-with-futures
Publishes multiple messages to a Pub/Sub topic and
prints their message IDs.
publish-with-error-handler
Publishes multiple messages to a Pub/Sub topic with an
error handler.
publish-with-batch-settings
Publishes multiple messages to a Pub/Sub topic with
batch settings.
optional arguments:
-h, --help show this help message and exit
- Exécutez le script de l'éditeur pour créer le sujet Pub/Sub :
python publisher.py $GOOGLE_CLOUD_PROJECT create MyTopic
Exemple de résultat :
Topic created: name: "projects/qwiklabs-gcp-fe27729bc161fb22/topics/MyTopic"
Tester la tâche terminée
Cliquez sur Vérifier ma progression pour valider la tâche exécutée. Si le sujet Cloud Pub/Sub a été créé correctement, vous verrez une note s'afficher.
Créer un sujet
- Cette commande renvoie la liste de tous les sujets Pub/Sub associés à un projet donné :
python publisher.py $GOOGLE_CLOUD_PROJECT list
Exemple de résultat :
name: "projects/qwiklabs-gcp-fe27729bc161fb22/topics/MyTopic"
Vous pouvez également consulter le sujet que vous venez de créer dans la console Cloud.
- Accédez au menu de navigation > Pub/Sub > Sujets.
Le sujet MyTopic
doit s'afficher.
Tâche 5 : Créer un abonnement
- Créez un abonnement Pub/Sub pour le sujet avec le script
subscriber.py
:
python subscriber.py $GOOGLE_CLOUD_PROJECT create MyTopic MySub
Tester la tâche terminée
Cliquez sur Vérifier ma progression pour valider la tâche exécutée. Si l'abonnement Cloud Pub/Sub a été créé correctement, vous verrez une note s'afficher.
Créer un abonnement
- Cette commande renvoie la liste des abonnés à un projet donné :
python subscriber.py $GOOGLE_CLOUD_PROJECT list-in-project
Un seul abonnement est disponible, car vous n'en avez créé qu'un.
Exemple de résultat :
projects/qwiklabs-gcp-7877af129f04d8b3/subscriptions/MySub
-
Vérifiez que l'abonnement que vous venez de créer s'affiche dans la console. Dans le volet de gauche, cliquez sur Abonnements. Le nom de l'abonnement et d'autres informations doivent être disponibles.
-
Pour en savoir plus sur le script subscriber
, saisissez la commande suivante :
python subscriber.py -h
Résultat :
usage: subscriber.py [-h]
project
{list_in_topic,list_in_project,create,create-push,delete,update,receive,receive-custom-attributes,receive-flow-control,receive-synchronously,listen_for_errors}
...
This application demonstrates how to perform basic operations on
subscriptions with the Cloud Pub/Sub API.
For more information, see the README.md under /pubsub and the documentation
at https://cloud.google.com/pubsub/docs.
positional arguments:
project Your Google Cloud project ID
{list_in_topic,list_in_project,create,create-push,delete,update,receive,receive-custom-attributes,receive-flow-control,receive-synchronously,listen_for_errors}
list_in_topic Lists all subscriptions for a given topic.
list_in_project Lists all subscriptions in the current project.
create Create a new pull subscription on the given topic.
create-push Create a new push subscription on the given topic.
delete Deletes an existing Pub/Sub topic.
update Updates an existing Pub/Sub subscription's push
endpoint URL. Note that certain properties of a
subscription, such as its topic, are not modifiable.
receive Receives messages from a pull subscription.
receive-custom-attributes
Receives messages from a pull subscription.
receive-flow-control
Receives messages from a pull subscription with flow
control.
receive-synchronously
Pulling messages synchronously.
listen_for_errors Receives messages and catches errors from a pull
subscription.
optional arguments:
-h, --help show this help message and exit
Tâche 6 : Publier des messages
Maintenant que vous avez configuré MyTopic
(le sujet), un abonnement à MyTopic
(MySub
), publiez un message dans MyTopic
à l'aide des commandes gcloud
.
- Publiez le message "Hello" dans
MyTopic
:
gcloud pubsub topics publish MyTopic --message "Hello"
- Publiez un ou deux autres messages dans
MyTopic
en exécutant les commandes suivantes (remplacez <YOUR NAME> par votre nom, et <FOOD> par un plat que vous aimez) :
gcloud pubsub topics publish MyTopic --message "Publisher's name is <YOUR NAME>"
gcloud pubsub topics publish MyTopic --message "Publisher likes to eat <FOOD>"
gcloud pubsub topics publish MyTopic --message "Publisher thinks Pub/Sub is awesome"
Tâche 7 : Consulter les messages
Maintenant que vous avez publié des messages dans le sujet MyTopic, extrayez-les et consultez-les avec MySub.
- Utilisez MySub pour extraire un message du sujet MyTopic :
python subscriber.py $GOOGLE_CLOUD_PROJECT receive MySub
Exemple de résultat :
Listening for messages on projects/qwiklabs-gcp-7877af129f04d8b3/subscriptions/MySub
Received message: Message {
data: 'Publisher thinks Pub/Sub is awesome'
attributes: {}
}
Received message: Message {
data: 'Hello'
attributes: {}
}
Received message: Message {
data: "Publisher's name is Harry"
attributes: {}
}
Received message: Message {
data: 'Publisher likes to eat cheese'
attributes: {}
}
- Appuyez sur les touches Ctrl+C pour arrêter l'exécution de la commande.
Tâche 8 : Tester vos connaissances
Voici quelques questions à choix multiples qui vous permettront de mieux maîtriser les concepts abordés lors de cet atelier. Répondez-y du mieux que vous le pouvez.
Félicitations !
Vous avez utilisé Python pour créer un sujet Pub/Sub, publier un message sur le sujet et créer un abonnement. Ensuite, vous vous êtes servi de cet abonnement pour récupérer des données à partir du sujet.
Étapes suivantes et informations supplémentaires
Pub/Sub Lite est un service zonal proposé en complément de Pub/Sub pour les systèmes de messagerie avec des modèles de trafic prévisibles. Si vous publiez entre 1 Mio et 1 Gio de messages par seconde, cette solution vous permet d'ingérer un volume d'événements élevé à moindre coût. Essayez Pub/Sub Lite dans cet atelier :
Cet atelier fait partie d'une série appelée "Qwik Starts". Les ateliers de cette série sont conçus pour vous donner un aperçu des nombreuses fonctionnalités proposées par Google Cloud. Pour suivre un autre atelier, recherchez "Qwik Starts" dans le catalogue Google Cloud Skills Boost.
Formations et certifications Google Cloud
Les formations et certifications Google Cloud vous aident à tirer pleinement parti des technologies Google Cloud. Nos cours portent sur les compétences techniques et les bonnes pratiques à suivre pour être rapidement opérationnel et poursuivre votre apprentissage. Nous proposons des formations pour tous les niveaux, à la demande, en salle et à distance, pour nous adapter aux emplois du temps de chacun. Les certifications vous permettent de valider et de démontrer vos compétences et votre expérience en matière de technologies Google Cloud.
Dernière mise à jour du manuel : 13 février 2024
Dernier test de l'atelier : 22 septembre 2022
Copyright 2025 Google LLC. Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.