Ce document explique comment publier des messages dans un sujet à l'aide d'un schéma.
Avant de commencer
Avant de configurer le workflow de publication, assurez-vous d'avoir effectué les tâches suivantes:
- Découvrez le fonctionnement des schémas Pub/Sub.
- Associez un schéma à un sujet.
Rôles requis
Pour obtenir les autorisations nécessaires pour publier des messages sur un sujet, demandez à votre administrateur de vous accorder le rôle IAM Éditeur Pub/Sub (roles/pubsub.publisher
) sur le sujet.
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
Vous avez besoin d'autorisations supplémentaires pour créer ou modifier des sujets et des abonnements.Publier des messages avec un schéma
Vous pouvez publier des messages dans un sujet associé à un schéma. Vous devez encoder les messages dans le schéma et le format que vous avez spécifiés lors de la création du sujet. Un message correspond au schéma associé au sujet s'il correspond à l'une des révisions du schéma dans la plage de révisions autorisée. Les messages sont évalués par rapport aux révisions dans l'ordre de la révision la plus récente autorisée jusqu'à ce qu'une correspondance soit trouvée ou que la révision la plus ancienne autorisée soit atteinte. Pub/Sub ajoute les attributs suivants à un message publié avec succès sur un sujet associé à un schéma:
googclient_schemaname
: nom du schéma utilisé pour la validation.googclient_schemaencoding
: encodage du message (JSON ou BINARY)googclient_schemarevisionid
: ID de révision du schéma utilisé pour analyser et valider le message. Chaque révision est associée à un ID de révision unique. L'ID de révision est un UUID à huit caractères généré automatiquement.
Lorsqu'un message ne correspond à aucune des révisions de schéma autorisées par le sujet, Pub/Sub renvoie une erreur INVALID_ARGUMENT
à la requête de publication.
Pub/Sub n'évalue les messages que par rapport aux révisions de schéma au moment de la publication. L'enregistrement d'une nouvelle révision de schéma ou la modification du schéma associé à un sujet après la publication d'un message ne réévalue pas ce message ni ne modifie aucun des attributs du message de schéma associé.
Vous pouvez publier des messages sur un sujet avec un schéma associé dans un projet Google Cloud à l'aide de la console Google Cloud, de gcloud CLI, de l'API Pub/Sub ou des bibliothèques clientes Cloud.
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Publiez un exemple de message à l'aide de la commande gcloud pubsub topics publish.
gcloud pubsub topics publish TOPIC_ID \ --message=MESSAGE
Remplacez les éléments suivants :
TOPIC_ID: nom du sujet que vous avez déjà créé.
MESSAGE: message publié dans le sujet. Un exemple de message peut être
{"name": "Alaska", "post_abbr": "AK"}
.
C++
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage C++ qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour C++.
Avro ProtoC#
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage C# qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour C#.
Avro ProtoGo
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Go qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Go.
Avro ProtoJava
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Java qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Java.
Avro ProtoNode.js
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Node.js qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Node.js.
Avro Tampon de protocoleNode.js
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Node.js qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Node.js.
Avro Tampon de protocolePHP
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage PHP qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour PHP.
Avro Tampon de protocolePython
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Python qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Python.
Avro Tampon de protocoleRuby
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Ruby qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Ruby.
Avro Tampon de protocoleÉtape suivante
Pour limiter les emplacements où Pub/Sub stocke les données de message, consultez la section Limiter les emplacements de ressources Pub/Sub.
Pour en savoir plus sur la réception de messages, consultez la section Choisir un type d'abonnement.