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 Artefaktanalyse-Benachrichtigungen für wie z. B. die Ergebnisse des Scans auf Sicherheitslücken, Dokumentation zur Artefaktanalyse
Pub/Sub-Thema erstellen
Wenn Sie die Container Registry API in einem Google Cloud-Projekt aktivieren,
Container Registry erstellt automatisch ein Pub/Sub-
Thema mit der Themen-ID gcr
.
Wenn das Thema gcr
versehentlich gelöscht wurde oder fehlt, können Sie es hinzufügen
für sich selbst. Das Thema ist beispielsweise möglicherweise nicht verfügbar, wenn für Ihre Google Cloud-Organisation eine Einschränkung in einer Organisationsrichtlinie gilt, die eine Verschlüsselung mit vom Kunden verwalteten Verschlüsselungsschlüsseln (CMEK) erfordert. Wenn der Parameter
Die Pub/Sub API befindet sich
in der Ablehnungsliste dieser Einschränkung,
-Dienste können Themen mit von Google verwalteten Verschlüsselungsschlüsseln nicht automatisch erstellen.
So erstellen Sie das Thema gcr
mit von Google verwalteten Verschlüsselungsschlüsseln:
Console
Rufen Sie in der Google Cloud Console die Seite „Pub/Sub-Themen“ auf.
Klicken Sie auf Thema erstellen.
Geben Sie die Themen-ID
gcr
ein.Klicken Sie auf Thema erstellen.
gcloud
Führen Sie dazu diesen Befehl 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.
Informationen zum Erstellen des Themas gcr
mit CMEK-Verschlüsselung finden Sie in den Pub/Sub-
Anleitung zum Verschlüsseln von Themen.
Nachdem Sie das Thema gcr
erstellt oder bestätigt haben, dass es vorhanden ist, können Sie ein Abo für das Thema erstellen.
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
Rufen Sie in der Google Cloud Console die Seite „Pub/Sub-Themen“ auf.
Klicken Sie auf das Thema Ihres Projekts.
Klicken Sie auf Abo erstellen.
Geben Sie einen Namen für das Abo ein:
projects/[PROJECT-ID]/subscriptions/[SUBSCRIPTION-NAME]
Belassen Sie den Zustellungstyp bei "Pull".
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 in der IAM-Seite der Google Cloud Console oder über die IAM API.
Mit den folgenden Rollen können Sie Berechtigungen für Veröffentlichungen konfigurieren: Inhaber, Bearbeiter, PubSub/Admin, PubSub/Bearbeiter, PubSub/Publisher. Hauptkonten, die Images hochladen oder aus der Registry löschen, müssen die Berechtigung
pubsub.topics.publish
, eine Nachricht zu veröffentlichen in Pub/SubVerwenden Sie eine der folgenden Optionen, um Berechtigungen für Abos zu konfigurieren Rollen: Inhaber, Bearbeiter, Pub/Sub-Admin, Pub/Sub-Editor, 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
- Lesen Sie die Pub/Sub-Dokumentation.
- Ausführliche Erläuterungen zu Pub/Sub finden Sie unter Was ist Pub/Sub?.
- Weitere Informationen zu Pub/Sub-Zugriffssteuerungsrollen