Referenz zu Azure Container Registry-Webhooks
Sie können für Ihre Containerregistrierung Webhooks konfigurieren, die Ereignisse generieren, wenn dafür bestimmte Aktionen durchgeführt werden. Aktivieren Sie beispielsweise Webhooks, die ausgelöst werden, wenn ein Containerimage oder Helm-Diagramm per Pushvorgang an eine Registrierung gesendet oder gelöscht wird. Wenn ein Webhook ausgelöst wird, sendet Azure Container Registry eine HTTP- oder HTTPS-Anforderung mit Informationen zum Ereignis an einen von Ihnen angegebenen Endpunkt. Ihr Endpunkt kann den Webhook dann verarbeiten und entsprechend agieren.
In den folgenden Abschnitten wird das Schema von Webhookanforderungen, die von unterstützten Ereignissen generiert werden, ausführlich beschrieben. Die Ereignisabschnitte enthalten das Nutzlastschema für den Ereignistyp, eine Beispiel-Anforderungsnutzlast und mindestens einen Beispielbefehl zum Auslösen des Webhooks.
Informationen zur Konfiguration von Webhooks für Ihre Azure Container Registry finden Sie unter Verwenden von Azure Container Registry-Webhooks.
Webhookanforderungen
HTTP-Anforderung
Ein ausgelöster Webhook sendet eine HTTP-POST
-Anforderung an den URL-Endpunkt, den Sie beim Konfigurieren des Webhooks angegeben haben.
HTTP-Header
Webhookanforderungen enthalten als Content-Type
die Angabe application/json
, wenn Sie keinen benutzerdefinierten Content-Type
-Header für Ihren Webhook angegeben haben.
Über die benutzerdefinierten Header hinaus, die Sie für den Webhook ggf. angeben, werden der Anforderung keine weiteren Header hinzugefügt.
Push-Ereignis
Auslösung per Webhook, wenn ein Containerimage per Pushvorgang in ein Repository übertragen wird.
Nutzlast des Push-Ereignisses
Element | type | Beschreibung |
---|---|---|
id |
String | Die ID des Webhookereignisses. |
timestamp |
Datetime | Der Zeitpunkt, zu dem das Webhookereignis ausgelöst wurde. |
action |
String | Die Aktion, die das Webhookereignis ausgelöst hat. |
Ziel | Komplexer Typ | Das Ziel des Ereignisses, von dem das Webhookereignis ausgelöst wurde. |
Anforderung | Komplexer Typ | Die Anforderung, die das Webhookereignis generiert hat. |
target
Element | type | Beschreibung |
---|---|---|
mediaType |
String | Der MIME-Typ des Objekts, auf das verwiesen wird. |
size |
Int32 | Die Byte-Anzahl des Inhalts. Entspricht dem Feld „Length“ (Länge). |
digest |
String | Zusammenfassung des Inhalts gemäß Definition in der HTTP-API-Spezifikation der Registrierung (V2). |
length |
Int32 | Die Byte-Anzahl des Inhalts. Entspricht dem Feld „Size“ (Größe). |
repository |
String | Der Name des Repositorys. |
tag |
String | Der Tagname des Images. |
request
Element | type | Beschreibung |
---|---|---|
id |
String | Die ID der Anforderung, die das Ereignis initiiert hat. |
host |
String | Der extern zugängliche Hostname der Registrierungsinstanz, der im HTTP-Hostheader von eingehenden Anforderungen angegeben ist. |
method |
String | Die Anforderungsmethode, die das Ereignis generiert hat. |
useragent |
String | Der Benutzer-Agent-Header der Anforderung. |
Nutzlastbeispiel: Image-Pushereignis
{
"id": "cb8c3971-9adc-488b-xxxx-43cbb4974ff5",
"timestamp": "2017-11-17T16:52:01.343145347Z",
"action": "push",
"target": {
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"size": 524,
"digest": "sha256:xxxxd5c8786bb9e621a45ece0dbxxxx1cdc624ad20da9fe62e9d25490f33xxxx",
"length": 524,
"repository": "hello-world",
"tag": "v1"
},
"request": {
"id": "3cbb6949-7549-4fa1-xxxx-a6d5451dffc7",
"host": "myregistry.azurecr.io",
"method": "PUT",
"useragent": "docker/17.09.0-ce go/go1.8.3 git-commit/afdb6d4 kernel/4.10.0-27-generic os/linux arch/amd64 UpstreamClient(Docker-Client/17.09.0-ce \\(linux\\))"
}
}
Beispiel: Docker CLI-Befehl, mit dem das push-Webhookereignis für das Image ausgelöst wird:
docker push myregistry.azurecr.io/hello-world:v1
Diagramm-Push-Ereignis
Auslösung per Webhook, wenn ein Helm-Diagramm per Pushvorgang in ein Repository übertragen wird.
Nutzlast: Diagramm-Push-Ereignis
Element | type | Beschreibung |
---|---|---|
id |
String | Die ID des Webhookereignisses. |
timestamp |
Datetime | Der Zeitpunkt, zu dem das Webhookereignis ausgelöst wurde. |
action |
String | Die Aktion, die das Webhookereignis ausgelöst hat. |
Ziel | Komplexer Typ | Das Ziel des Ereignisses, von dem das Webhookereignis ausgelöst wurde. |
target
Element | type | Beschreibung |
---|---|---|
mediaType |
String | Der MIME-Typ des Objekts, auf das verwiesen wird. |
size |
Int32 | Die Byte-Anzahl des Inhalts. |
digest |
String | Zusammenfassung des Inhalts gemäß Definition in der HTTP-API-Spezifikation der Registrierung (V2). |
repository |
String | Der Name des Repositorys. |
tag |
String | Tagname des Diagramms. |
name |
String | Diagrammname. |
version |
String | Diagrammversion. |
Nutzlastbeispiel: Diagramm-Pushereignis
{
"id": "6356e9e0-627f-4fed-xxxx-d9059b5143ac",
"timestamp": "2019-03-05T23:45:31.2614267Z",
"action": "chart_push",
"target": {
"mediaType": "application/vnd.acr.helm.chart",
"size": 25265,
"digest": "sha256:xxxx8075264b5ba7c14c23672xxxx52ae6a3ebac1c47916e4efe19cd624dxxxx",
"repository": "repo",
"tag": "wordpress-5.4.0.tgz",
"name": "wordpress",
"version": "5.4.0.tgz"
}
}
Beispiel: Befehl der Azure-Befehlszeilenschnittstelle, mit dem das chart_push-Webhookereignis ausgelöst wird:
az acr helm push wordpress-5.4.0.tgz --name MyRegistry
Ereignis löschen
Wird per Webhook ausgelöst, wenn ein Image-Repository oder Manifest gelöscht wird. Wird nicht ausgelöst, wenn ein Tag gelöscht wird.
Ereignisnutzlast löschen
Element | type | Beschreibung |
---|---|---|
id |
String | Die ID des Webhookereignisses. |
timestamp |
Datetime | Der Zeitpunkt, zu dem das Webhookereignis ausgelöst wurde. |
action |
String | Die Aktion, die das Webhookereignis ausgelöst hat. |
Ziel | Komplexer Typ | Das Ziel des Ereignisses, von dem das Webhookereignis ausgelöst wurde. |
Anforderung | Komplexer Typ | Die Anforderung, die das Webhookereignis generiert hat. |
target
Element | type | Beschreibung |
---|---|---|
mediaType |
String | Der MIME-Typ des Objekts, auf das verwiesen wird. |
digest |
String | Zusammenfassung des Inhalts gemäß Definition in der HTTP-API-Spezifikation der Registrierung (V2). |
repository |
String | Der Name des Repositorys. |
request
Element | type | Beschreibung |
---|---|---|
id |
String | Die ID der Anforderung, die das Ereignis initiiert hat. |
host |
String | Der extern zugängliche Hostname der Registrierungsinstanz, der im HTTP-Hostheader von eingehenden Anforderungen angegeben ist. |
method |
String | Die Anforderungsmethode, die das Ereignis generiert hat. |
useragent |
String | Der Benutzer-Agent-Header der Anforderung. |
Nutzlastbeispiel: Image-Löschereignis
{
"id": "afc359ce-df7f-4e32-xxxx-1ff8aa80927b",
"timestamp": "2017-11-17T16:54:53.657764628Z",
"action": "delete",
"target": {
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"digest": "sha256:xxxxd5c8786bb9e621a45ece0dbxxxx1cdc624ad20da9fe62e9d25490f33xxxx",
"repository": "hello-world"
},
"request": {
"id": "3d78b540-ab61-4f75-xxxx-7ca9ecf559b3",
"host": "myregistry.azurecr.io",
"method": "DELETE",
"useragent": "python-requests/2.18.4"
}
}
Beispiel: Befehle der Azure-Befehlszeilenschnittstelle, mit denen ein delete-Ereigniswebhook ausgelöst wird:
# Delete repository
az acr repository delete --name MyRegistry --repository MyRepository
# Delete image
az acr repository delete --name MyRegistry --image MyRepository:MyTag
Diagramm-Löschereignis
Auslösung per Webhook, wenn ein Helm-Diagramm oder ein Repository gelöscht wird.
Nutzlast: Diagramm-Löschereignis
Element | type | Beschreibung |
---|---|---|
id |
String | Die ID des Webhookereignisses. |
timestamp |
Datetime | Der Zeitpunkt, zu dem das Webhookereignis ausgelöst wurde. |
action |
String | Die Aktion, die das Webhookereignis ausgelöst hat. |
Ziel | Komplexer Typ | Das Ziel des Ereignisses, von dem das Webhookereignis ausgelöst wurde. |
target
Element | type | Beschreibung |
---|---|---|
mediaType |
String | Der MIME-Typ des Objekts, auf das verwiesen wird. |
size |
Int32 | Die Byte-Anzahl des Inhalts. |
digest |
String | Zusammenfassung des Inhalts gemäß Definition in der HTTP-API-Spezifikation der Registrierung (V2). |
repository |
String | Der Name des Repositorys. |
tag |
String | Tagname des Diagramms. |
name |
String | Diagrammname. |
version |
String | Diagrammversion. |
Nutzlastbeispiel: Diagramm-Löschereignis
{
"id": "338a3ef7-ad68-4128-xxxx-fdd3af8e8f67",
"timestamp": "2019-03-06T00:10:48.1270754Z",
"action": "chart_delete",
"target": {
"mediaType": "application/vnd.acr.helm.chart",
"size": 25265,
"digest": "sha256:xxxx8075264b5ba7c14c23672xxxx52ae6a3ebac1c47916e4efe19cd624dxxxx",
"repository": "repo",
"tag": "wordpress-5.4.0.tgz",
"name": "wordpress",
"version": "5.4.0.tgz"
}
}
Beispiel: Befehl der Azure-Befehlszeilenschnittstelle, mit dem das chart_delete-Webhookereignis ausgelöst wird:
az acr helm delete wordpress --version 5.4.0 --name MyRegistry