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 :
- En savoir plus sur les sujets et le workflow de publication
- Comprendre le fonctionnement des schémas Pub/Sub
- Créez un sujet.
Rôles et autorisations nécessaires
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 Gérer l'accès aux projets, aux dossiers et aux organisations.
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
Vous devez disposer des autorisations suivantes pour créer et gérer des schémas :
-
Créer un schéma :
pubsub.schemas.create -
Associez le schéma au thème :
pubsub.schemas.attach -
Valider une révision de schéma :
pubsub.schemas.commit -
Supprimez un schéma ou une révision de schéma :
pubsub.schemas.delete -
Obtenir un schéma ou des révisions de schéma :
pubsub.schemas.get -
Lister les schémas :
pubsub.schemas.list -
Lister les révisions de schéma :
pubsub.schemas.listRevisions -
Effectuer un rollback d'un schéma :
pubsub.schemas.rollback -
Valider un message :
pubsub.schemas.validate -
Obtenez la stratégie IAM d'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 accorder des rôles et des autorisations à des comptes principaux tels que des utilisateurs, des groupes, des domaines ou des comptes de service. Vous pouvez créer un schéma dans un projet et l'associer à 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 à l'aide de la Google Cloud console, de gcloud CLI, de l'API Pub/Sub ou des bibliothèques clientes Cloud.
Avant de créer un schéma, consultez ces informations importantes à son sujet.
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 obtenir des consignes sur la dénomination d'un schéma, consultez Consignes de dénomination d'un sujet, d'un abonnement ou d'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 Définition du schéma, saisissez la définition Avro ou Protocol Buffer de votre schéma.
Voici un exemple de schéma 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 du schéma est correcte.
La vérification de la 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 du message.
Dans le champ Corps du message, saisissez un message test.
Cliquez sur Test.
Voici un exemple de message pour le schéma de test. Dans cet exemple, sélectionnez
JSONcomme encodage du message.{"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 à
avroouprotocol-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 à
avroouprotocol-buffer. - SCHEMA_DEFINITION_FILE est un
stringcontenant le chemin d'accès au fichier avec la définition du schéma, mis en forme selon le type de schéma choisi.
REST
Pour créer un schéma, envoyez une requête POST comme suit :
POST https://pubsub.googleapis.com/v1/projects/PROJECT_ID/schemas?schemaId=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 à
avroouprotocol-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 généré par le serveur pour la révision.
- REVISION_CREATE_TIME correspond au code temporel ISO 8601 auquel la révision a été créée.
C++
Avant d'essayer cet exemple, suivez les instructions de configuration pour C++ dans le guide de démarrage rapide : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Pub/Sub 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 de l'API Pub/Sub C#.
Avro
Proto
Go
L'exemple suivant utilise la version majeure de la bibliothèque cliente Go Pub/Sub (v2). Si vous utilisez toujours la bibliothèque v1, consultez le guide de migration vers la v2. Pour obtenir la liste des exemples de code v1, consultez les exemples de code obsolètes.
Avant d'essayer cet exemple, suivez les instructions de configuration pour Go dans le guide de démarrage rapide : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Pub/Sub en langage Go.
Avro
Proto
Java
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Java se trouvant sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Pub/Sub en langage 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 de l'API Pub/Sub en langage 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 de l'API Pub/Sub en langage 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 de l'API Pub/Sub en langage 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 de l'API Pub/Sub en langage Python.
Avro
Proto
Ruby
L'exemple suivant utilise la bibliothèque cliente Ruby Pub/Sub v3. Si vous utilisez toujours la bibliothèque v2, consultez le guide de migration vers la v3. Pour obtenir la liste des exemples de code Ruby v2, consultez les exemples de code obsolètes.
Avant d'essayer cet exemple, suivez les instructions de configuration pour Ruby dans le guide de démarrage rapide : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Pub/Sub en langage Ruby.
Avro
Proto
Rust
Avant d'essayer cet exemple, suivez les instructions de configuration pour Rust dans le guide de démarrage rapide : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Pub/Sub Rust.
Avro
Proto
Une fois le schéma créé, vous pouvez afficher ses détails sur la page Schémas.
Vous pouvez associer le schéma à un sujet.