Ce document explique comment créer, mettre à jour, afficher et supprimer un sujet Pub/Sub. Ce document explique également comment nommer les sujets et les abonnements.
Réplication des données dans un sujet
Un sujet Pub/Sub utilise trois zones pour stocker des données. Le service garantit une réplication synchrone sur au moins deux zones et permet une réplication optimale dans une troisième zone supplémentaire. La réplication Pub/Sub s'applique à une seule région.
Propriétés d'un thème
Lorsque vous créez ou mettez à jour un sujet, vous devez spécifier ses propriétés.
Ajoutez un abonnement par défaut. Ajoute un abonnement par défaut au sujet Pub/Sub. Vous pourrez créer un autre abonnement au sujet après sa création. L'abonnement par défaut possède les propriétés suivantes:
- ID d'abonnement :
-sub
- Type de distribution pull
- Durée de conservation des messages de sept jours
- Expiration après 31 jours d'inactivité
- Délai d'accusé de réception de 10 secondes
- Stratégie de nouvelle tentative immédiate
- ID d'abonnement :
Schéma. Un schéma est un format que le champ de données de message doit suivre. Un schéma est un contrat passé entre l'éditeur et l'abonné, appliqué par Pub/Sub. Les schémas thématiques permettent de standardiser les types de messages et les autorisations pour qu'ils soient utilisés par différentes équipes de votre organisation. Pub/Sub crée une autorité centrale pour les types de messages et les autorisations. Pour créer un sujet avec schéma, consultez Créer et gérer des schémas.
Durée de conservation des messages. Spécifie la durée de conservation des messages Pub/Sub après la publication. Une fois la durée de conservation des messages dépassée, Pub/Sub peut supprimer le message, quel que soit son état d'accusé de réception. Des frais de stockage des messages sont facturés pour le stockage de tous les messages publiés dans le sujet.
- Par défaut = désactivé
- Valeur minimale = 10 minutes
- Valeur maximale = 31 jours
Utiliser une clé de chiffrement gérée par le client (CMEK) Indique si le sujet est chiffré avec une clé CMEK. Par défaut, Pub/Sub chiffre les messages à l'aide de clés gérées par Google. Si vous spécifiez cette option, Pub/Sub utilise le modèle de chiffrement encapsulé avec CMEK. Dans cette approche, Cloud KMS ne chiffre pas les messages. À la place, Cloud KMS chiffre les clés de chiffrement de données (DEK, Data Encryption Keys) créées par Pub/Sub pour chaque sujet. Pub/Sub chiffre les messages à l'aide de la DEK la plus récente générée pour le sujet. Pub/Sub déchiffre les messages peu de temps avant qu'ils ne soient distribués aux abonnés. Pour en savoir plus sur la création d'une clé, consultez Configurer le chiffrement des messages.
Consignes pour nommer un sujet, un abonnement ou un instantané
Un nom de ressource Pub/Sub identifie de manière unique une ressource Pub/Sub, telle qu'un sujet, un abonnement ou un instantané. Le nom de la ressource doit respecter le format suivant:
projects/project-identifier/collection/ID
project-identifier
: doit être l'ID du projet, disponible dans la console Google Cloud. Par exemple,my-cool-project
.collection
: doit êtretopics
,subscriptions
ousnapshots
.ID
: doit respecter les consignes suivantes:- Ne commence pas par la chaîne
goog
- Commencer par une lettre
- contenir entre 3 et 255 caractères ;
- Ne peut contenir que les caractères suivants: lettres
[A-Za-z]
, chiffres[0-9]
, tirets-
, traits de soulignement_
, points.
, tildes~
, signes+
et signes de pourcentage%
Vous pouvez utiliser les caractères spéciaux de la liste précédente dans les noms de ressources sans encodage des URL. Toutefois, vous devez vous assurer que tous les autres caractères spéciaux sont correctement encodés ou décodés lorsque vous les utilisez dans les URL. Par exemple,
mi-tópico
n'est pas un ID valide. En revanche,mi-t%C3%B3pico
est valide. Ce format est important lorsque vous effectuez des appels REST.- Ne commence pas par la chaîne
Créer un sujet
Créez un sujet avant de pouvoir le publier ou vous y abonner.
Console
Pour créer un sujet, procédez comme suit:
Dans la console Google Cloud, accédez à la page Sujets de Pub/Sub.
Cliquez sur Create topic (Créer un sujet).
Dans le champ ID du sujet, saisissez un ID pour votre sujet.
Conservez l'option Ajouter un abonnement par défaut.
Ne sélectionnez pas les autres options.
Cliquez sur Create topic (Créer un sujet).
gcloud CLI
Pour créer un sujet, exécutez la commande gcloud pubsub topics create
:
gcloud pubsub topics create TOPIC_ID
REST
Pour créer un sujet, utilisez la méthode projects.topics.create
:
La demande doit être authentifiée à l'aide d'un jeton d'accès dans l'en-tête Authorization
. Pour obtenir un jeton d'accès pour les identifiants par défaut actuels de l'application, exécutez la commande suivante : gcloud auth application-default print-access-token
.
PUT https://pubsub.googleapis.com/v1/projects/PROJECT_ID/topics/TOPIC_ID Authorization: Bearer ACCESS_TOKEN
Où :
Réponse :
{ "name": "projects/PROJECT_ID/topics/TOPIC_ID" }
C++
Avant d'essayer cet exemple, suivez les instructions de configuration de C++ dans le guide de démarrage rapide de Pub/Sub à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Pub/Sub C++.
C#
Avant d'essayer cet exemple, suivez les instructions de configuration de C# dans le guide de démarrage rapide de Pub/Sub à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Pub/Sub C#.
Go
Avant d'essayer cet exemple, suivez les instructions de configuration de Go dans le guide de démarrage rapide de Pub/Sub à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Pub/Sub Go.
Java
Avant d'essayer cet exemple, suivez les instructions de configuration de Java dans le guide de démarrage rapide de Pub/Sub à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Pub/Sub Java.
Node.js
Avant d'essayer cet exemple, suivez les instructions de configuration de Node.js dans le guide de démarrage rapide de Pub/Sub à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Pub/Sub Node.js.
PHP
Avant d'essayer cet exemple, suivez les instructions de configuration de PHP dans le guide de démarrage rapide de Pub/Sub à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Pub/Sub PHP.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration de Python dans le guide de démarrage rapide de Pub/Sub à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Pub/Sub Python.
Ruby
Avant d'essayer cet exemple, suivez les instructions de configuration de Ruby dans le guide de démarrage rapide de Pub/Sub à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Pub/Sub Ruby.
Contraintes liées aux règles d'administration
Les règles d'administration peuvent restreindre la création de sujets. Par exemple, une règle peut restreindre le stockage des messages dans une région Compute Engine. Pour éviter les erreurs de création de sujet, examinez et mettez à jour les règles d'administration si nécessaire avant de créer un sujet.
Si votre projet vient d'être créé, attendez quelques minutes que la règle d'administration s'initialise avant de créer un sujet.
Accéder à la page Règles d'administration
Créer un sujet avec un schéma
Lors de la création d'un sujet, vous pouvez lui attribuer un schéma.
Voici quelques consignes concernant l'utilisation de schémas:
- Vous ne pouvez pas ajouter de schémas à des sujets existants.
- Vous ne pouvez spécifier un schéma que lorsque vous créez un sujet.
- Une fois qu'un schéma est associé à un sujet, vous ne pouvez plus mettre à jour le schéma ni supprimer l'association avec ce sujet.
- Vous pouvez appliquer le même schéma à d'autres sujets.
- Si vous supprimez un schéma, la publication sur tous les sujets associés échoue.
Pour en savoir plus sur les schémas, consultez Créer et gérer des schémas.
Console
Pour créer un sujet et lui attribuer un schéma, procédez comme suit:
Dans la console Google Cloud, accédez à la page Sujets Pub/Sub.
Cliquez sur Create topic (Créer un sujet).
Dans le champ ID du sujet, saisissez un ID pour votre sujet.
Cochez la case Use a schema (Utiliser un schéma). Conservez les paramètres par défaut pour les autres options.
Cliquez sur Sélectionner un schéma Pub/Sub, puis sur Créer un schéma. Si vous souhaitez utiliser un schéma existant, passez à l'étape 7.
Dans le champ ID de schéma, saisissez un ID pour votre schéma.
Dans le champ Type de schéma, sélectionnez Avro ou Protocol Buffer (tampon de protocole).
Dans le champ Définition de schéma, saisissez la définition Avro du tampon de protocole pour votre schéma.
Cliquez sur Créer pour enregistrer le schéma.
Dans la boîte de dialogue Create a topic (Créer un sujet), recherchez votre schéma dans le champ Select a Pub/Sub schema (Sélectionner un schéma Pub/Sub).
Cliquez sur Créer pour enregistrer le sujet et l'attribuer au schéma sélectionné.
gcloud
Pour créer un sujet attribué avec un schéma créé précédemment, exécutez la commande gcloud pubsub topics create
:
gcloud pubsub topics create TOPIC_ID \ --message-encoding=ENCODING_TYPE \ --schema=SCHEMA_ID
Où :
- TOPIC_ID est l'ID du sujet que vous créez.
- ENCODING_TYPE est l'encodage des messages validés par rapport au schéma. Cette valeur doit être définie sur
JSON
ouBINARY
. - SCHEMA_ID est l'ID d'un schéma existant.
Vous pouvez également attribuer un schéma à partir d'un autre projet Google Cloud:
gcloud pubsub topics create TOPIC_ID \ --message-encoding=ENCODING_TYPE \ --schema=SCHEMA_ID \ --schema-project=SCHEMA_PROJECT \ --project=TOPIC_PROJECT
Où :
- SCHEMA_PROJECT est l'ID du projet Google Cloud pour le schéma.
- TOPIC_PROJECT est l'ID du projet Google Cloud associé au sujet.
REST
Pour créer un sujet, utilisez la méthode projects.topics.create
:
Requête :
La demande doit être authentifiée à l'aide d'un jeton d'accès dans l'en-tête Authorization
. Pour obtenir un jeton d'accès pour les identifiants par défaut actuels de l'application, exécutez la commande suivante : gcloud auth application-default print-access-token
.
PUT https://pubsub.googleapis.com/v1/projects/PROJECT_ID/topics/TOPIC_ID Authorization: Bearer ACCESS_TOKEN
Corps de la requête :
{ "schemaSettings": { "schema": "SCHEMA_NAME", "encoding": "ENCODING_TYPE" } }
Où :
- PROJECT_ID est l'ID de votre projet.
- TOPIC_ID est votre ID de sujet.
- SCHEMA_NAME est le nom du schéma par rapport auquel les messages publiés doivent être validés. Le format est le suivant:
projects/PROJECT_ID/schemas/SCHEMA_ID
. - ENCODING_TYPE est l'encodage des messages validés par rapport au schéma. Il doit être défini sur
JSON
ouBINARY
.
Réponse :
{ "name": "projects/PROJECT_ID/topics/TOPIC_ID", "schemaSettings": { "schema": "SCHEMA_NAME", "encoding": "ENCODING_TYPE" } }
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++.
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#.
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.
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.
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.
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.
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.
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.
Supprimer un sujet
Lorsque vous supprimez un sujet, ses abonnements ne sont pas supprimés. Le message en attente de l'abonnement est disponible pour les abonnés. Une fois un sujet supprimé, ses abonnements portent le nom de sujet _deleted-topic_
. Si vous essayez de créer un sujet portant le même nom qu'un sujet que vous venez de supprimer, attendez-vous à une erreur pendant une brève période.
Console
Dans la console Google Cloud, accédez à la page Sujets de Pub/Sub.
Sélectionnez un thème, puis cliquez sur
Autres actions.Cliquez sur Supprimer.
La fenêtre Supprimer le sujet s'affiche.
Saisissez
delete
, puis cliquez sur Supprimer.
gcloud CLI
Pour supprimer un sujet, utilisez la commande gcloud pubsub topics delete
:
gcloud pubsub topics delete TOPIC_ID
REST
Pour supprimer un sujet, utilisez la méthode projects.topics.delete
:
Requête :
La demande doit être authentifiée à l'aide d'un jeton d'accès dans l'en-tête Authorization
. Pour obtenir un jeton d'accès pour les identifiants par défaut actuels de l'application, exécutez la commande suivante : gcloud auth application-default print-access-token
.
DELETE https://pubsub.googleapis.com/v1/projects/PROJECT_ID/topics/TOPIC_ID Authorization: Bearer ACCESS_TOKEN
Où :
Réponse :
Si la requête aboutit, la réponse est un objet JSON vide.
C++
Avant d'essayer cet exemple, suivez les instructions de configuration de C++ dans le guide de démarrage rapide de Pub/Sub à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Pub/Sub C++.
C#
Avant d'essayer cet exemple, suivez les instructions de configuration de C# dans le guide de démarrage rapide de Pub/Sub à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Pub/Sub C#.
Go
Avant d'essayer cet exemple, suivez les instructions de configuration de Go dans le guide de démarrage rapide de Pub/Sub à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Pub/Sub Go.
Java
Avant d'essayer cet exemple, suivez les instructions de configuration de Java dans le guide de démarrage rapide de Pub/Sub à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Pub/Sub Java.
Node.js
Avant d'essayer cet exemple, suivez les instructions de configuration de Node.js dans le guide de démarrage rapide de Pub/Sub à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Pub/Sub Node.js.
PHP
Avant d'essayer cet exemple, suivez les instructions de configuration de PHP dans le guide de démarrage rapide de Pub/Sub à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Pub/Sub PHP.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration de Python dans le guide de démarrage rapide de Pub/Sub à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Pub/Sub Python.
Ruby
Avant d'essayer cet exemple, suivez les instructions de configuration de Ruby dans le guide de démarrage rapide de Pub/Sub à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Pub/Sub Ruby.
Répertorier un sujet
Console
Dans la console Google Cloud, accédez à la page Sujets de Pub/Sub.
La page Sujets répertorie tous les sujets disponibles.
gcloud CLI
Pour répertorier les sujets, utilisez la commande gcloud pubsub topics list
:
gcloud pubsub topics list
REST
Pour répertorier les sujets, utilisez la méthode projects.topics.list
:
Requête :
La demande doit être authentifiée à l'aide d'un jeton d'accès dans l'en-tête Authorization
. Pour obtenir un jeton d'accès pour les identifiants par défaut actuels de l'application, exécutez la commande suivante : gcloud auth application-default print-access-token
.
GET https://pubsub.googleapis.com/v1/projects/PROJECT_ID/topics Authorization: Bearer ACCESS_TOKEN
Où :
Réponse :
{ "topics": [ { "name": "projects/PROJECT_ID/topics/mytopic1", ... }, { "name": "projects/PROJECT_ID/topics/mytopic2", ... } ] }
C++
Avant d'essayer cet exemple, suivez les instructions de configuration de C++ dans le guide de démarrage rapide de Pub/Sub à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Pub/Sub C++.
C#
Avant d'essayer cet exemple, suivez les instructions de configuration de C# dans le guide de démarrage rapide de Pub/Sub à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Pub/Sub C#.
Go
Avant d'essayer cet exemple, suivez les instructions de configuration de Go dans le guide de démarrage rapide de Pub/Sub à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Pub/Sub Go.
Java
Avant d'essayer cet exemple, suivez les instructions de configuration de Java dans le guide de démarrage rapide de Pub/Sub à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Pub/Sub Java.
Node.js
Avant d'essayer cet exemple, suivez les instructions de configuration de Node.js dans le guide de démarrage rapide de Pub/Sub à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Pub/Sub Node.js.
PHP
Avant d'essayer cet exemple, suivez les instructions de configuration de PHP dans le guide de démarrage rapide de Pub/Sub à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Pub/Sub PHP.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration de Python dans le guide de démarrage rapide de Pub/Sub à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Pub/Sub Python.
Ruby
Avant d'essayer cet exemple, suivez les instructions de configuration de Ruby dans le guide de démarrage rapide de Pub/Sub à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Pub/Sub Ruby.
Par défaut, 100 résultats au maximum sont renvoyés par requête. Vous pouvez spécifier une autre valeur allant jusqu'à 1 000 à l'aide du paramètre de taille des pages.
Surveiller les sujets
Vous pouvez surveiller les sujets depuis Pub/Sub.
Étapes suivantes
Choisissez le type d'abonnement associé à votre sujet.
Créez un abonnement à votre sujet.
Créez ou modifiez un sujet avec gcloud CLI.
Créer ou modifier un sujet avec les API REST