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
- Melden Sie sich beim Azure-Portal an.
- Navigieren Sie zu der Containerregistrierung, für die Sie einen Webhook erstellen möchten.
- Wählen Sie unter Dienste die Option Webhooks aus.
- Wählen Sie in der Webhook-Symbolleiste die Option Hinzufügen.
- 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:
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.
- Wählen Sie den Webhook aus, den Sie testen möchten.
- Wählen Sie in der oberen Symbolleiste Ping.
- Überprüfen Sie die Antwort des Endpunkts in der Spalte HTTP-STATUS.
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