Configurer les notifications Pub/Sub

Vous pouvez recevoir des notifications concernant les modifications de vos dépôts Google Cloud à l'aide de Pub/Sub. Ces notifications vous informent lorsqu'un utilisateur crée ou supprime un dépôt, ou lorsqu'il exécute une modification dans un dépôt existant. Vous pouvez choisir de configurer des notifications pour des dépôts spécifiques ou tout un projet Google Cloud.

Pour en savoir plus sur Pub/Sub, consultez la page Qu'est-ce que Pub/Sub ?

Avant de commencer

  • Si vous ne l'avez pas déjà fait, suivez les étapes du guide de démarrage rapide permettant d'ajouter des notifications afin de créer un projet, installer Git et initialiser le SDK Cloud.
  • Vérifiez que vous disposez des autorisations appropriées pour créer des sujets et des abonnements. Pour en savoir plus, consultez la page Contrôle des accès.
  • Assurez-vous de disposer d'un compte de service autorisé à publier sur votre sujet. Par défaut, Cloud Source Repositories utilise le compte de service Compute Engine par défaut pour publier des messages. Pour plus d'informations, consultez la section Notifications Pub/Sub pour Cloud Source Repositories.

Créer un sujet Pub/Sub

Pour chaque projet ou dépôt Cloud Source Repositories pour lequel vous souhaitez recevoir des notifications, vous devez créer un sujet Pub/Sub. Vous pouvez créer un sujet à l'aide de Google Cloud Console ou de l'outil de ligne de commande gcloud.

Lorsque vous créez un sujet, vous devez utiliser un URI qualifié pour votre dépôt. L'URI qualifié est :

projects/[PROJECT_ID]/topics/[TOPIC_NAME]

Où :

  • [PROJECT_ID] correspond à votre ID de projet Google Cloud.
  • [TOPIC_NAME] correspond au nom du sujet.

Pour créer un sujet, procédez comme suit :

Console

  1. Dans Cloud Console, accédez à la page Sujets de Pub/Sub.

    Accéder à la page Sujets

  2. Cliquez sur Créer un sujet.

  3. Entrez un nom de sujet avec l'URI :

    projects/[PROJECT_ID]/topics/[TOPIC_NAME]
    

    Où :

    • [PROJECT_ID] correspond à votre ID de projet Google Cloud.
    • [TOPIC_NAME] correspond au nom du sujet.
  4. Cliquez sur Créer.

    La page Détails du sujet s'affiche.

gcloud

Dans une fenêtre de terminal, exécutez la commande suivante :

gcloud pubsub topics create projects/[PROJECT_ID]/topics/[TOPIC_NAME]

Où :

  • [PROJECT_ID] correspond à votre ID de projet Google Cloud.
  • [TOPIC_NAME] correspond au nom du sujet.

Pour en savoir plus sur la commande gcloud pubsub topics, consultez la documentation sur topics.

Créer un abonnement Pub/Sub

Pour recevoir des événements publiés dans un sujet, vous devez créer un abonnement Pub/Sub.

Une application d'abonné reçoit des messages en provenance du sujet de votre dépôt. Les abonnés peuvent répondre aux événements de votre dépôt en envoyant des notifications ou en déclenchant une compilation.

Pour créer un abonnement, procédez comme suit :

Console

  1. Dans Cloud Console, accédez à la page Sujets de Pub/Sub.

    Accéder à la page Sujets

  2. Cliquez sur le nom du sujet de votre projet.

  3. Cliquez sur Créer un abonnement.

    La page Ajouter un abonnement au sujet s'ouvre.

  4. Entrez un nom d'abonnement :

    projects/[PROJECT_ID]/subscriptions/[SUBSCRIPTION_NAME]
    

    Où :

    • [PROJECT_ID] correspond à votre ID de projet Google Cloud.
    • [SUBSCRIPTION_NAME] correspond au nom de l'abonnement Pub/Sub.
  5. Laissez le champ Type de distribution défini sur Pull.

  6. Cliquez sur Créer.

gcloud

Dans une fenêtre de terminal, exécutez la commande suivante :

gcloud pubsub subscriptions create [SUBSCRIPTION_NAME] --topic=[TOPIC_NAME]

Où :

  • [SUBSCRIPTION_NAME] correspond au nom de l'abonnement Pub/Sub.
  • [TOPIC_NAME] correspond au nom du sujet.

Pour en savoir plus sur la commande gcloud pubsub subscriptions, consultez la documentation sur subscriptions.

Ajouter un sujet

Vous pouvez associer un sujet Pub/Sub à un projet ou un dépôt Google Cloud à l'aide de l'outil de ligne de commande gcloud.

Pour associer un sujet à l'ensemble d'un projet, saisissez la commande suivante :

gcloud source project-configs update --add-topic=[TOPIC_NAME] --service-account=[SERVICE_ACCOUNT_NAME]

Où :

  • [TOPIC_NAME] correspond au nom du sujet Pub/Sub.
  • [SERVICE_ACCOUNT_NAME] correspond au nom du compte de service Cloud Build.

Pour associer un sujet à un dépôt spécifique, saisissez la commande suivante :

gcloud source repos update [REPOSITORY_NAME] --add-topic=[TOPIC_NAME] --service-account=[SERVICE_ACCOUNT_NAME]

Où :

  • [REPOSITORY_NAME] correspond au nom du dépôt Google Cloud.
  • [TOPIC_NAME] correspond au nom du sujet Pub/Sub.
  • [SERVICE_ACCOUNT_NAME] correspond au nom du compte de service Cloud Build.

Le compte de service doit se trouver dans le même projet que celui contenant le dépôt. Il doit également disposer de l'autorisation pubsub.topics.publish pour publier un message sur le sujet spécifié. Vous devez disposer d'une autorisation iam.serviceAccounts.actAs sur le compte de service. Si le compte de service n'est pas spécifié, il utilise automatiquement le compte de service Compute Engine par défaut.

Supprimer un sujet

Vous pouvez supprimer une association entre un projet ou un dépôt et un sujet Pub/Sub à l'aide de l'outil de ligne de commande gcloud.

Pour supprimer un sujet de l'ensemble d'un projet, saisissez la commande suivante :

gcloud source project-configs update --remove-topic=[TOPIC_NAME]

Pour supprimer un sujet d'un dépôt spécifique, saisissez la commande suivante :

gcloud source repos update [REPOSITORY_NAME] --remove-topic=[TOPIC_NAME]

Définir le format du sujet

Les notifications de Cloud Source Repositories peuvent utiliser le format JSON ou Protocol Buffers. Pour définir le format d'un sujet, servez-vous du paramètre --message-format lorsque vous ajoutez le sujet :

gcloud source project-configs update --add-topic=[TOPIC_NAME] --message-format=[json|protobuf]

Vous pouvez également exécuter la commande set-format :

gcloud source project-configs update --update-topic=[TOPIC_NAME] --message-format=[json|protobuf]

Étapes suivantes