Pub/Sub-Benachrichtigungen konfigurieren

Sie können Benachrichtigungen über Änderungen an Ihren Google Cloud-Repositories mit Pub/Sub erhalten. Diese Benachrichtigungen informieren Sie darüber, wenn ein Nutzer ein neues Repository erstellt, ein Repository löscht oder eine Änderung an ein vorhandenes Repository sendet. Sie können Benachrichtigungen für bestimmte Repositories oder für ein gesamtes Google Cloud-Projekt konfigurieren.

Weitere Informationen zu Pub/Sub finden Sie unter Was ist Pub/Sub?

Hinweise

  • Falls noch nicht geschehen, führen Sie die Schritte in der Kurzanleitung zum Hinzufügen von Benachrichtigungen aus, um ein Projekt zu erstellen, Git zu installieren und die Google Cloud CLI zu initialisieren.
  • Prüfen Sie, ob Sie die erforderlichen Berechtigungen zum Erstellen von Themen und Abos haben. Weitere Informationen finden Sie unter Zugriffssteuerung.
  • Sorgen Sie dafür, dass Sie ein Dienstkonto haben, das in Ihrem Thema veröffentlichen kann. Standardmäßig verwendet Cloud Source Repositories das Compute Engine-Standarddienstkonto zum Veröffentlichen von Nachrichten. Weitere Informationen finden Sie unter Pub/Sub-Benachrichtigungen für Cloud Source Repositories.

Pub/Sub-Thema erstellen

Für jedes Cloud Source Repositories-Projekt oder Repository, für das Sie Benachrichtigungen erhalten möchten, müssen Sie ein Pub/Sub-Thema erstellen. Sie können ein Thema mit der Google Cloud Console oder dem gcloud-Befehlszeilentool erstellen.

Wenn Sie ein Thema erstellen, brauchen Sie einen qualifizierten URI für Ihr Repository. Der qualifizierte URI ist:

projects/[PROJECT_ID]/topics/[TOPIC_NAME]

Dabei gilt:

  • [PROJECT_ID] ist Ihre Google Cloud-Projekt-ID.
  • [TOPIC_NAME] ist der Name des Themas.

Führen Sie die folgenden Schritte aus, um ein Thema zu erstellen.

Console

  1. Rufen Sie in der Google Cloud Console die Pub/Sub-Seite Themen auf.

    Zur Seite "Themen"

  2. Klicken Sie auf Thema erstellen.

  3. Geben Sie einen Themennamen mit folgendem URI ein:

    projects/[PROJECT_ID]/topics/[TOPIC_NAME]
    

    Wobei:

    • [PROJECT_ID] ist Ihre Google Cloud-Projekt-ID.
    • [TOPIC_NAME] ist der Name des Themas.
  4. Klicken Sie auf Erstellen.

    Die Seite Themendetails wird geöffnet.

gcloud

Führen Sie in einem Terminalfenster den folgenden Befehl aus:

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

Wobei:

  • [PROJECT_ID] ist Ihre Google Cloud-Projekt-ID.
  • [TOPIC_NAME] ist der Name des Themas.

Weitere Informationen zum Befehl gcloud pubsub topics finden Sie in der topics-Dokumentation.

Pub/Sub-Abo erstellen

Wenn Sie Ereignisse empfangen möchten, die für ein Thema veröffentlicht werden, müssen Sie ein Pub/Sub-Abo erstellen.

Eine Aboanwendung empfängt Nachrichten von dem Thema Ihres Repositorys. Abonnenten können auf Ihre Repository-Ereignisse reagieren, indem sie Benachrichtigungen senden oder einen Build auslösen.

Führen Sie die folgenden Schritte aus, um ein Abo zu erstellen.

Console

  1. Rufen Sie in der Google Cloud Console die Pub/Sub-Seite Themen auf.

    Zur Seite "Themen"

  2. Klicken Sie auf den Namen des Themas Ihres Projekts.

  3. Klicken Sie auf Abo erstellen.

    Die Seite Abo zum Thema hinzufügen wird geöffnet.

  4. Geben Sie einen Namen für das Abo ein:

    projects/[PROJECT_ID]/subscriptions/[SUBSCRIPTION_NAME]
    

    Wobei:

    • [PROJECT_ID] ist Ihre Google Cloud-Projekt-ID.
    • [SUBSCRIPTION_NAME] ist der Name des Pub/Sub-Abos.
  5. Belassen Sie den Zustellungstyp bei Pull.

  6. Klicken Sie auf Erstellen.

gcloud

Führen Sie in einem Terminalfenster den folgenden Befehl aus:

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

Wobei:

  • [SUBSCRIPTION_NAME] ist der Name des Pub/Sub-Abos.
  • [TOPIC_NAME] ist der Name des Themas.

Weitere Informationen zum Befehl gcloud pubsub subscriptions finden Sie in der subscriptions-Dokumentation.

Thema hinzufügen

Sie können ein Pub/Sub-Thema über die Google Cloud CLI mit einem Google Cloud-Projekt oder -Repository verknüpfen.

Geben Sie zum Verknüpfen eines Themas mit einem gesamten Projekt den folgenden Befehl ein:

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

Wobei:

  • [TOPIC_NAME] ist der Name des Pub/Sub-Themas.
  • [SERVICE_ACCOUNT_NAME] ist der Name Ihres Cloud Build-Dienstkontos.

Geben Sie zum Verknüpfen eines Themas mit einem bestimmten Repository den folgenden Befehl ein:

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

Wobei:

  • [REPOSITORY_NAME] ist der Name Ihres Google Cloud-Repositorys.
  • [TOPIC_NAME] ist der Name des Pub/Sub-Themas.
  • [SERVICE_ACCOUNT_NAME] ist der Name Ihres Cloud Build-Dienstkontos.

Das Dienstkonto muss sich im selben Projekt wie das Repository befinden und eine pubsub.topics.publish-Berechtigung zum Veröffentlichen einer Nachricht an das angegebene Thema haben. Sie benötigen eine iam.serviceAccounts.actAs-Berechtigung für das Dienstkonto. Wenn das Dienstkonto nicht angegeben ist, wird standardmäßig das Compute Engine-Standarddienstkonto verwendet.

Thema löschen

Über die Google Cloud CLI können Sie eine Verknüpfung zwischen einem Projekt oder Repository und einem Pub/Sub-Thema aufheben.

Geben Sie den folgenden Befehl ein, um ein Thema aus einem gesamten Projekt zu entfernen:

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

Geben Sie den folgenden Befehl ein, um ein Thema aus einem bestimmten Repository zu entfernen:

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

Themenformat festlegen

Benachrichtigungen für Cloud Source Repositories können entweder das JSON- oder Protocol Buffers-Format verwenden. Um das Format für ein Thema festzulegen, können Sie beim Hinzufügen des Themas den Parameter --message-format verwenden:

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

Sie können auch den Befehl set-format verwenden:

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

Nächste Schritte