Verwenden von Azure Container Registry-Webhooks

Eine Azure Container Registry speichert und verwaltet private Docker-Containerimages. Dies ähnelt der Art und Weise, in der Docker Hub öffentliche Docker-Images speichert. Sie können auch Repositorys für Helm-Diagramme hosten (Vorschauversion), ein Paketformat zum Bereitstellen von Anwendungen in Kubernetes. Sie können Webhooks verwenden, um Ereignisse auszulösen, wenn in einem Ihrer Registrierungsrepositorys bestimmte Aktionen stattfinden. Webhooks können auf Ereignisse auf Ebene der Registrierung reagieren oder auf ein bestimmtes Repositorytag begrenzt werden. Mit einer georeplizierten Registrierung können Sie jeden Webhook so konfigurieren, dass er auf Ereignisse in einem bestimmten regionalen Replikat reagiert.

Der Endpunkt für einen Webhook muss über die Registrierung öffentlich zugänglich sein. Sie können Registrierungsanforderungen für Webhooks konfigurieren, um sich bei einem gesicherten Endpunkt zu authentifizieren.

Ausführliche Informationen zu Webhookanforderungen finden Sie unter Referenz zu Azure Container Registry-Webhookschemas.

Voraussetzungen

  • Azure-Containerregistrierung: Erstellen Sie in Ihrem Azure-Abonnement eine Containerregistrierung. Verwenden Sie beispielsweise das Azure-Portal oder die Azure CLI. Die Azure Container Registry-Dienstebenen haben unterschiedliche Kontingente für Webhooks.
  • Docker CLI: Installieren Sie die Docker-Engine, um Ihren lokalen Computer als Docker-Host einzurichten und auf die Befehle der Docker CLI zuzugreifen.

Erstellen von Webhooks – Azure-Portal

  1. Melden Sie sich beim Azure-Portal an.
  2. Navigieren Sie zu der Containerregistrierung, für die Sie einen Webhook erstellen möchten.
  3. Wählen Sie unter Dienste die Option Webhooks aus.
  4. Wählen Sie in der Webhook-Symbolleiste die Option Hinzufügen.
  5. Geben Sie folgende Informationen in das Formular Webhook erstellen ein:
Wert BESCHREIBUNG
Webhookname Der Name, den Sie dem Webhook geben möchten. Er darf nur Buchstaben und Zahlen enthalten und muss 5 bis 50 Zeichen lang sein.
Standort Geben Sie für eine georeplizierte Registrierung die Azure-Region des Registrierungsreplikats an.
Dienst-URI Der URI, an den der Webhook POST-Benachrichtigungen senden soll.
Benutzerdefinierte Header Header, die Sie zusammen mit der POST-Anforderung übergeben möchten. Diese müssen im Format „Schlüssel: Wert“ vorliegen.
Triggeraktionen Aktionen, die den Webhook auslösen. Zu den Aktionen gehören Pushvorgänge für Images, Löschen von Images, Pushvorgänge für Helm-Diagramme, Löschen von Helm-Diagrammen und Quarantäne für Images. Sie können eine oder mehrere Aktionen auswählen, um den Webhook auszulösen.
Status Der Status des Webhooks nach der Erstellung. Der Webhook ist standardmäßig aktiviert.
`Scope` Der Bereich, in dem der Webhook funktioniert. Wenn nichts anderes angegeben ist, gilt der Bereich für alle Ereignisse in der Registrierung. Der Bereich kann im Format „repository:tag“ für ein Repository oder ein Tag oder mit „respository:*“ für alle Tags in einem Repository angegeben werden.

Beispielformular für Webhook:

Screenshot: Benutzeroberfläche für die Erstellung von ACR-Webhooks im Azure-Portal

Erstellen von Webhooks – Azure-Befehlszeilenschnittstelle (CLI)

Um einen Webhook über die Azure-Befehlszeilenschnittstelle zu erstellen, verwenden Sie den Befehl az acr webhook create. Mit dem folgenden Befehl wird ein Webhook für alle Löschereignisse von Images in der Registrierung mycontainerregistry erstellt:

az acr webhook create --registry mycontainerregistry --name myacrwebhook01 --actions delete --uri http://webhookuri.com

Testen von Webhooks

Azure-Portal

Vor der Verwendung des Webhooks können Sie ihn mithilfe der Schaltfläche Ping testen. Der Pingbefehl sendet eine allgemeine POST-Anforderung an den angegebenen Endpunkt und protokolliert die Antwort. Mit dieser Pingfunktion können Sie überprüfen, ob Sie den Webhook richtig konfiguriert haben.

  1. Wählen Sie den Webhook aus, den Sie testen möchten.
  2. Wählen Sie in der oberen Symbolleiste Ping.
  3. Überprüfen Sie die Antwort des Endpunkts in der Spalte HTTP-STATUS.

ACR-Webhookerstellungsoberfläche im Azure-Portal

Azure CLI

Um einen ACR-Webhook über die Azure-Befehlszeilenschnittstelle zu testen, verwenden Sie den Befehl az acr webhook ping.

az acr webhook ping --registry mycontainerregistry --name myacrwebhook01

Zum Anzeigen der Ergebnisse verwenden Sie den Befehl az acr webhook list-events.

az acr webhook list-events --registry mycontainerregistry08 --name myacrwebhook01

Löschen von Webhooks

Azure-Portal

Jeder Webhook kann gelöscht werden, indem Sie den Webhook und dann die Schaltfläche Löschen im Azure-Portal auswählen.

Azure CLI

az acr webhook delete --registry mycontainerregistry --name myacrwebhook01

Nächste Schritte

Webhookschemareferenz

Ausführliche Informationen zum Format und zu den Eigenschaften der von Azure Container Registry ausgegebenen JSON-Ereignisnutzlasten finden Sie in der Webhookschemareferenz:

Referenz zu Azure Container Registry-Webhookschemas

Event Grid-Ereignisse

Neben den in diesem Artikel erörterten nativen Registrierungswebhookereignissen kann Azure Container Registry Ereignisse an Event Grid ausgeben:

Schnellstart: Senden von Containerregistrierungsereignissen an Event Grid