Ce document vous 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 opérations suivantes tâches:
- Découvrez le fonctionnement des schémas Pub/Sub.
- Associez un schéma à un sujet.
Rôles requis
Pour obtenir les autorisations dont vous avez besoin
pour publier des messages dans un sujet,
demandez à votre administrateur de vous accorder le
É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 mettre à jour 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 selon le schéma et le format que vous avez spécifiés. lorsque vous avez créé le 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 plus récente à la révision autorisée révision jusqu'à ce qu'une correspondance soit trouvée ou que la révision la plus ancienne autorisée ne soit atteint. Pub/Sub ajoute les attributs suivants à un message a bien été publié dans un sujet associé à un schéma:
googclient_schemaname
: nom du schéma utilisé pour la validation.googclient_schemaencoding
: encodage du message (JSON) ou BINAIRE.googclient_schemarevisionid
: ID de révision du schéma utilisé pour analyser et valider le message. Chaque révision dispose d'un ID de révision unique qui lui est associé. L'ID de révision est 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 qu'en fonction des révisions de schéma l'heure de publication. Commit une nouvelle révision de schéma ou modifier le schéma associé à un sujet après la publication d'un message ne le réévalue pas et ne modifie pas les attributs de message de schéma joints.
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 la CLI gcloud, 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 méthode 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. 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 de stockage des données de message par Pub/Sub, consultez Restreindre les emplacements des ressources Pub/Sub
Pour en savoir plus sur la réception de messages, consultez la section Choisir un type d'abonnement.