Configurer un sujet et un abonnement Pub/Sub

Dans App Design Center, vous pouvez configurer un sujet et un abonnement Pub/Sub pour fournir une messagerie asynchrone et évolutive qui dissocie les services produisant des messages des services qui les traitent. Vous pouvez personnaliser les connexions des composants et les paramètres de configuration de votre sujet et de votre abonnement en fonction du module Terraform terraform-google-pubsub.

Connexions des composants

Le tableau suivant inclut les composants que vous pouvez connecter à un sujet ou à un abonnement Pub/Sub, ainsi que les mises à jour de votre application et de son code Terraform généré qui en résultent.

Composant connecté

Mises à jour de l'application

Informations générales

Modèle d'instance Compute Engine

  • Les instances Compute Engine peuvent publier des messages dans le sujet Pub/Sub et en recevoir.
  • L'ID du sujet Pub/Sub est ajouté aux métadonnées du modèle d'instance Compute Engine.
Modèles d'instance

Compte de service

  • Le compte de service peut gérer les sujets Pub/Sub et extraire les messages des abonnements.
  • Le rôle roles/pubsub.editor est ajouté au compte de service.
  • Le nom et l'adresse e-mail du compte de service sont ajoutés à l'abonnement pull Pub/Sub.
Contrôle des accès avec IAM

BigQuery

  • L'abonnement Pub/Sub peut écrire des messages dans l'ensemble de données BigQuery.
  • Les informations sur l'ensemble de données BigQuery sont ajoutées aux champs de l'abonnement BigQuery.
Abonnements BigQuery

Cloud Run

  • Le service Cloud Run peut recevoir des messages ou publier dans le sujet Pub/Sub.
  • L'ID du sujet Pub/Sub est ajouté aux variables d'environnement Cloud Run.
  • Les rôles roles/pubsub.publisher et roles/pubsub.subscriber sont ajoutés au compte de service Cloud Run.
  • Le service Cloud Run est ajouté aux champs d'abonnement push et pull Pub/Sub.
Tutoriel : Utiliser Pub/Sub avec Cloud Run

Cloud Storage

  • L'abonnement Pub/Sub peut écrire des messages dans le bucket Cloud Storage.
  • Les informations sur le bucket Cloud Storage sont ajoutées aux champs de l'abonnement Pub/Sub.
Abonnements Cloud Storage

Paramètres de configuration requis

Si votre modèle inclut un composant Pub/Sub, vous devez configurer les paramètres suivants avant de le déployer.

Nom du paramètre

Description et contraintes

Informations générales

ID du projet

Projet dans lequel vous souhaitez déployer la ressource Pub/Sub.

Configurer les composants

Sujet

name Consignes de dénomination d'un sujet, d'un abonnement, d'un schéma ou d'un instantané

Paramètres de configuration facultatifs

Les paramètres suivants sont facultatifs. Pour afficher les paramètres avancés, dans la zone Configuration, sélectionnez Afficher les champs avancés.

Fonctionnalité

Nom du paramètre

Description et informations sur les contraintes

Informations générales

Créer un sujet Par défaut, un sujet est créé. Décochez la case si vous ne souhaitez pas créer de sujet. Créer un sujet
Créer des abonnements Par défaut, un abonnement est créé. Décochez la case si vous ne souhaitez pas créer d'abonnement. Présentation des abonnements

Libellés des thèmes

Clé labels Signaler l'utilisation avec des étiquettes
Valeur labels Signaler l'utilisation avec des étiquettes

Abonnements push

Nom name Consignes de dénomination d'un sujet, d'un abonnement, d'un schéma ou d'un instantané
Délai de confirmation en secondes ackDeadlineSeconds Délai de confirmation
Point de terminaison push pushEndpoint Points de terminaison
X-goog-version Format de l'API Pub/Sub du message push. Par exemple, v1beta1. attributes
Adresse e-mail du compte de service OIDC serviceAccountEmail Authentification
Audience audience Authentification
Règle d'expiration expirationPolicy Période d'expiration
Sujet des lettres mortes deadLetterTopic Sujet des lettres mortes
Conserver les messages confirmés retainAckedMessages Conserver les messages confirmés
Durée de conservation des messages messageRetentionDuration Durée de conservation des messages
Nombre maximal de tentatives d'envoi maxDeliveryAttempts Sujet des lettres mortes
Intervalle maximal entre les tentatives maximumBackoff Règle de nouvelle tentative
Intervalle minimal entre les tentatives minimumBackoff Règle de nouvelle tentative
Filter filter Filtre d'abonnement
Activer l'ordre des messages enableMessageOrdering Tri des messages

Abonnements pull

Nom name Consignes de dénomination d'un sujet, d'un abonnement, d'un schéma ou d'un instantané
Délai de confirmation en secondes ackDeadlineSeconds Délai de confirmation
Sujet des lettres mortes deadLetterTopic Sujet des lettres mortes
Nombre maximal de tentatives d'envoi maxDeliveryAttempts Sujet des lettres mortes
Conserver les messages confirmés retainAckedMessages Conserver les messages confirmés
Durée de conservation des messages messageRetentionDuration Durée de conservation des messages
Intervalle maximal entre les tentatives maximumBackoff Règle de nouvelle tentative
Intervalle minimal entre les tentatives minimumBackoff Règle de nouvelle tentative
Filter filter Filtre d'abonnement
Activer l'ordre des messages enableMessageOrdering Tri des messages
Compte de service
Activer la distribution de type "exactement une fois" enableExactlyOnceDelivery Distribution de type "exactement une fois"

Abonnements BigQuery

Nom name Consignes de dénomination d'un sujet, d'un abonnement, d'un schéma ou d'un instantané
Table table Créer des abonnements BigQuery
Utiliser un schéma de sujet useTopicSchema Utiliser l'abonnement à un sujet
Utiliser un schéma de table useTableSchema Utiliser un schéma de table
Écrire des métadonnées writeMetadata Écrire des métadonnées
Supprimer les champs inconnus dropUnknownFields Supprimer les champs inconnus
Délai de confirmation en secondes ackDeadlineSeconds Délai de confirmation
Conserver les messages confirmés retainAckedMessages Conserver les messages confirmés
Durée de conservation des messages messageRetentionDuration Durée de conservation des messages
Activer l'ordre des messages enableMessageOrdering Tri des messages
Règle d'expiration expirationPolicy Période d'expiration
Filter filter Filtre d'abonnement
Sujet des lettres mortes deadLetterTopic Sujet des lettres mortes
Intervalle maximal entre les tentatives maximumBackoff Règle de nouvelle tentative
Intervalle minimal entre les tentatives minimumBackoff Règle de nouvelle tentative

Abonnements Cloud Storage

Nom name Consignes de dénomination d'un sujet, d'un abonnement, d'un schéma ou d'un instantané
Bucket bucket Nom du bucket
Préfixe du nom de fichier filenamePrefix Préfixe, suffixe et date/heure du nom de fichier
Suffixe du nom de fichier filenameSuffix Préfixe, suffixe et date/heure du nom de fichier
Format de date et d'heure du nom de fichier filenameDatetimeFormat Préfixe, suffixe et date/heure du nom de fichier
Durée max. maxDuration Traitement des fichiers par lot
Nombre maximal d'octets maxBytes Traitement des fichiers par lot
Nombre maximal de messages maxMessages Traitement des fichiers par lot
Format de sortie textConfig ou avroConfig Format de fichier
Écrire des métadonnées writeMetadata Écrire des métadonnées
Utiliser un schéma de sujet useTopicSchema Utiliser un schéma avec sujet
Délai de confirmation en secondes ackDeadlineSeconds Délai de confirmation
Conserver les messages confirmés Conserver les messages confirmés
Durée de conservation des messages messageRetentionDuration Durée de conservation des messages
Activer l'ordre des messages enableMessageOrdering Tri des messages
Règle d'expiration expirationPolicy Période d'expiration
Filter filter Filtre d'abonnement
Sujet des lettres mortes deadLetterTopic Sujet des lettres mortes
Intervalle maximal entre les tentatives maximumBackoff Règle de nouvelle tentative
Intervalle minimal entre les tentatives minimumBackoff Règle de nouvelle tentative

Libellés d'abonnement

Clé labels Signaler l'utilisation avec des étiquettes
Valeur labels Signaler l'utilisation avec des étiquettes
Durée de conservation des messages par sujet topicMessageRetentionDuration Durée de conservation des messages
Nom de la clé KMS du sujet kmsKeyName Utiliser une clé de chiffrement gérée par le client (CMEK)
Accorder des rôles de projet BigQuery Par défaut, les rôles Lecteur de métadonnées BigQuery et Éditeur de données BigQuery sont attribués au compte de service Pub/Sub par défaut. Si vous ne souhaitez pas attribuer ces rôles, décochez la case. Attribuer des rôles BigQuery au compte de service Pub/Sub
Accorder le rôle "Créateur de jetons" Par défaut, le rôle Créateur de jetons du compte de service est attribué au compte de service Pub/Sub par défaut. Si vous ne souhaitez pas attribuer ce rôle, décochez la case. Configurer l'authentification pour Pub/Sub

Schéma

Nom name Informations importantes sur les schémas
Type type Types de schémas
Définition définition Types de schémas
Encodage encoding Consignes pour associer un schéma à un sujet