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 tâches suivantes :
- Comprendre 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 dans 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 avec des rôles personnalisés ou d'autres rôles prédéfinis.
Vous devez disposer d'autorisations supplémentaires pour créer ou modifier des thèmes 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, de la révision autorisée la plus récente à la révision autorisée la plus ancienne, jusqu'à ce qu'une correspondance soit trouvée. Pub/Sub ajoute les attributs suivants à un message publié avec succès dans 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 par rapport aux révisions de schéma qu'au moment de la publication. L'envoi d'une nouvelle révision de schéma ou la modification du schéma associé à un sujet après la publication d'un message n'entraîne pas une nouvelle évaluation de ce message ni la modification des attributs de message de schéma associés.
Vous pouvez publier des messages dans un sujet associé à un schéma 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Étapes suivantes
Pour limiter les emplacements de stockage des données de message Pub/Sub, consultez Limiter les emplacements de ressources Pub/Sub.
Pour en savoir plus sur la réception de messages, consultez Choisir un type d'abonnement.