Artifact Registry ist der empfohlene Dienst zur Verwaltung von Container-Images. Container Registry wird weiterhin unterstützt, es werden jedoch nur wichtige Sicherheitsupdates bereitgestellt. Umstellung auf Artifact Registry

Pub/Sub-Benachrichtigungen konfigurieren

Wenn Änderungen an dem Repository von Container Registry vorgenommen werden, zum Beispiel wenn Images hochgeladen, getaggt oder gelöscht werden, können Sie Benachrichtigungen mit Pub/Sub erhalten.

Pub/Sub veröffentlicht Nachrichten zu Ihrem Repository in benannten Ressourcen, die als Themen bezeichnet werden. Diese Nachrichten werden von Anwendungen empfangen, die Pub/Sub-Themen abonniert haben. Abonnentenanwendungen senden Benachrichtigungen, wenn sich der Status Ihres Repositorys ändert.

Außerdem können Sie Rollen und Berechtigungen für Ihre Pub/Sub-Themen konfigurieren, um zu bestimmen, wie Nutzer mit Ihrem Repository interagieren.

Artifact Registry veröffentlicht Nachrichten zum selben Thema wie Container Registry, um die Umstellung von Container Registry auf Artifact Registry zu unterstützen.

Informationen zum Konfigurieren von Container Analysis-Benachrichtigungen für Aktivitäten, z. B. neue Ergebnisse von Scans auf Sicherheitslücken, finden Sie in der Dokumentation zu Container Analysis.

Pub/Sub-Thema erstellen

Erstellen Sie für jedes Container Registry-Projekt, für das Sie Benachrichtigungen erhalten möchten, ein Pub/Sub-Thema mit einer Pub/Sub-Publisher-Anwendung.

Eine Publisher-Anwendung sendet Nachrichten an das Thema Ihres Repositorys, wenn sich der Status des Repositorys ändert. Sie können ein Thema mithilfe der Cloud Console oder des gcloud-Befehlszeilentools erstellen.

So erstellen Sie ein Thema:

Console

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

    Zur Seite "Pub/Sub-Themen"

  2. Klicken Sie auf Thema erstellen.

  3. Geben Sie die ID gcr ein.

  4. Klicken Sie auf Thema erstellen.

gcloud

Führen Sie in dem System, in dem Docker-Images hochgeladen oder getaggt werden, den folgenden Befehl in der Shell oder im Terminalfenster aus:

gcloud pubsub topics create gcr --project=PROJECT-ID

Ersetzen Sie PROJECT-ID durch Ihre Google Cloud-Projekt-ID. Wenn Sie das Flag --project weglassen, verwendet der Befehl das aktuelle Projekt.

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

Pub/Sub-Abo erstellen

Jedes Pub/Sub-Thema sollte ein Abo haben.

Eine Aboanwendung empfängt Nachrichten von dem Thema Ihres Repositories. Abonnenten erfüllen Aufgaben wie Ereignisbenachrichtigungen, Systemprotokollierung und Kommunikation zwischen Anwendungen.

Abos können so konfiguriert werden, dass sie ein Push-Modell oder ein Pull-Modell verwenden.

So erstellen Sie ein Abo:

Console

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

    Zur Seite "Pub/Sub-Themen"

  2. Klicken Sie auf das Thema Ihres Projekts.

  3. Klicken Sie auf Abo erstellen.

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

    projects/[PROJECT-ID]/subscriptions/[SUBSCRIPTION-NAME]
    

    Belassen Sie den Zustellungstyp bei "Pull".

  5. Klicken Sie auf Erstellen.

gcloud

Führen Sie im System, in das Docker-Images hochgeladen oder in dem sie getaggt werden, den folgenden Befehl aus:

gcloud pubsub subscriptions create [SUBSCRIPTION-NAME] --topic=gcr

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

Pub/Sub-Berechtigungen konfigurieren

Mithilfe der Pub/Sub-Zugriffssteuerung können Berechtigungen für Ihr Projekt und Ihre Ressourcen konfiguriert werden. Durch Zugriffssteuerungen bleibt Ihr Repository sicher und Sie können die Benutzerberechtigungen mithilfe von rollenbasiertem Zugriff verwalten.

Sie können Pub/Sub-Zugriffssteuerungen auf der IAM-Seite der Cloud Console oder über die IAM API konfigurieren.

  • Mit den folgenden Rollen können Sie Berechtigungen für Veröffentlichungen konfigurieren: Inhaber, Bearbeiter, PubSub/Admin, PubSub/Bearbeiter, PubSub/Publisher.

  • Mit den folgenden Rollen können Sie Berechtigungen für Abos konfigurieren: Inhaber, Bearbeiter, Pub/Sub-Administrator, Pub/Sub-Bearbeiter, Pub/Sub-Abonnent.

Benachrichtigungsbeispiele

Benachrichtigungen werden als JSON-formatierte Strings gesendet. Die folgenden Beispiele zeigen, was geschieht, wenn Container Registry-Benachrichtigungen von Pub/Sub empfangen werden.

Wenn ein Image in Container Registry hochgeladen wird, kann die Nutzlast der Benachrichtigung so aussehen:

{
  "action":"INSERT",
  "digest":"gcr.io/my-project/hello-world@sha256:6ec128e26cd5..."
}

Wenn ein neues Tag in Container Registry hochgeladen wird, kann die Nutzlast der Benachrichtigung etwa so aussehen:

{
  "action":"INSERT",
  "digest":"gcr.io/my-project/hello-world@sha256:6ec128e26cd5...",
  "tag":"gcr.io/my-project/hello-world:1.1"
}

Die Nachricht identifiziert das relevante Image entweder mit einem digest- oder einem tag-Schlüssel.

Wenn ein Tag aus Container Registry gelöscht wird, kann die Nutzlast der Benachrichtigung etwa so aussehen:

{
  "action":"DELETE",
  "tag":"gcr.io/my-project/hello-world:1.1"
}

Die Nachricht kann entweder DELETE oder INSERT als Werte für den Schlüssel action enthalten.

Nächste Schritte