Ce document explique comment créer des schémas pour les sujets Pub/Sub.
Avant de commencer
Avant de créer un schéma, procédez comme suit:
- Découvrez les thèmes et le workflow de publication.
- Découvrez le fonctionnement des schémas Pub/Sub.
- Créez un sujet.
Rôles et autorisations requis
Pour obtenir les autorisations nécessaires
pour créer et gérer des schémas,
demandez à votre administrateur de vous accorder le
Rôle IAM Éditeur Pub/Sub (roles/pubsub.editor
) sur votre projet.
Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.
Ce rôle prédéfini contient les autorisations requises pour créer et gérer des schémas. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour créer et gérer des schémas:
-
Créez un schéma:
pubsub.schemas.create
-
Associez le schéma au sujet:
pubsub.schemas.attach
-
Effectuez un commit d'une révision du schéma:
pubsub.schemas.commit
-
Supprimez un schéma ou une révision de schéma:
pubsub.schemas.delete
-
Obtenez un schéma ou des révisions de schéma:
pubsub.schemas.get
-
Listez les schémas:
pubsub.schemas.list
-
Répertoriez les révisions de schéma:
pubsub.schemas.listRevisions
-
Effectuez le rollback d'un schéma:
pubsub.schemas.rollback
-
Pour valider un message:
pubsub.schemas.validate
-
Obtenez la stratégie IAM pour un schéma:
pubsub.schemas.getIamPolicy
-
Configurez la stratégie IAM pour un schéma:
pubsub.schemas.setIamPolicy
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Vous pouvez attribuer des rôles et des autorisations à des comptes principaux des domaines ou des comptes de service. Vous pouvez créer un schéma dans un projet à un sujet situé dans un autre projet. Assurez-vous de disposer des autorisations requises pour chaque projet.
Créer un schéma
Vous pouvez créer un schéma avec la console Google Cloud, la gcloud CLI, l'API Pub/Sub ou les bibliothèques clientes Cloud. Les éléments suivants sont quelques consignes pour créer un schéma:
Pour qu'un schéma fonctionne avec Pub/Sub, vous ne devez définir Un type de niveau supérieur Instructions d'importation faisant référence à d'autres types ne sont pas acceptés.
Vous pouvez associer le même schéma à plusieurs sujets.
Vous pouvez tester manuellement si un message est validé par rapport à un schéma.
Console
Pour créer un schéma, procédez comme suit :
Dans la console Google Cloud, accédez à la page Schémas Pub/Sub.
Cliquez sur Créer un schéma.
Dans le champ ID de schéma, saisissez un ID pour votre schéma.
Pour savoir comment nommer un schéma, consultez la section Consignes pour nommer un sujet, un abonnement ou un instantané.
Dans le champ Type de schéma, sélectionnez Avro ou Protocol Buffer (tampon de protocole).
En savoir plus sur les types de schémas
Dans le champ Schema définition (Définition du schéma), saisissez l'espace de noms Avro ou Protocol Buffer. pour votre schéma.
Voici un exemple de schéma au format Avro.
{ "type": "record", "name": "Avro", "fields": [ { "name": "ProductName", "type": "string", "default": "" }, { "name": "SKU", "type": "int", "default": 0 }, { "name": "InStock", "type": "boolean", "default": false } ] }
Facultatif: Cliquez sur Valider la définition pour vérifier si la définition de schéma est correcte.
Le contrôle de validation ne vérifie pas la compatibilité du schéma avec les messages à publier. Testez les messages à l'étape suivante.
Facultatif: Vous pouvez tester si les messages avec le bon schéma sont publiés.
Cliquez sur Tester le message.
Dans la fenêtre Message de test, sélectionnez un type d'encodage des messages.
Dans le corps du message, saisissez un message de test.
Cliquez sur Test.
Voici un exemple de message pour le schéma de test. Dans cet exemple, sélectionnez
JSON
pour l'encodage des messages.{"ProductName":"GreenOnions", "SKU":34543, "InStock":true}
Quittez la page du message de test.
Cliquez sur Créer pour enregistrer le schéma.
gcloud
gcloud pubsub schemas create SCHEMA_ID \ --type=SCHEMA_TYPE \ --definition=SCHEMA_DEFINITION
Où :
- SCHEMA_TYPE correspond à
avro
ouprotocol-buffer
. - SCHEMA_DEFINITION correspond à une chaîne (
string
) contenant la définition du schéma, formatée en fonction du type de schéma choisi.
Vous pouvez également spécifier la définition du schéma dans un fichier:
gcloud pubsub schemas create SCHEMA_ID \ --type=SCHEMA_TYPE \ --definition-file=SCHEMA_DEFINITION_FILE
Où :
- SCHEMA_TYPE correspond à
avro
ouprotocol-buffer
. - SCHEMA_DEFINITION_FILE est un
string
contenant le chemin d'accès contenant la définition du schéma, formaté selon le format choisi type de schéma.
REST
Pour créer un schéma, envoyez une requête POST comme suit :
POST https://pubsub.googleapis.com/v1/projects/PROJECT_ID/schemas/SCHEMA_ID Authorization: Bearer $(gcloud auth application-default print-access-token) Content-Type: application/json --data @response-body.json
Spécifiez les champs suivants dans le corps de la requête :
{ "definition": SCHEMA_DEFINITION "type": SCHEMA_TYPE }
Où :
- SCHEMA_TYPE correspond à
avro
ouprotocol-buffer
. - SCHEMA_DEFINITION est une chaîne contenant la définition du schéma, formatée en fonction du type de schéma choisi.
Le corps de la réponse doit contenir une représentation JSON d'une ressource de schéma. Exemple :
{ "name": SCHEMA_NAME, "type": SCHEMA_TYPE, "definition": SCHEMA_DEFINITION "revisionId": REVISION_ID "revisionCreateTime": REVISION_CREATE_TIME }
Où :
- REVISION_ID est l'ID de révision généré par le serveur.
- REVISION_CREATE_TIME est le code temporel ISO 8601 correspondant au moment la révision a été créée.
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
Proto
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
Proto
Go
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
Proto
Java
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
Proto
Node.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
Proto
Node.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
Proto
PHP
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
Proto
Python
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
Proto
Ruby
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
Proto
Après avoir créé un schéma, vous pouvez consultez les détails du schéma dans la Schémas
Vous pouvez associer le schéma à un sujet.