Udostępnij za pośrednictwem


Dokumentacja elementu webhook usługi Azure Container Registry

Elementy webhook można skonfigurować dla rejestru kontenerów , które generują zdarzenia po wykonaniu określonych akcji. Na przykład włącz elementy webhook wyzwalane po wypchnięciu obrazu kontenera lub wykresu Helm do rejestru lub usunięcia. Po wyzwoleniu elementu webhook usługa Azure Container Registry wysyła żądanie HTTP lub HTTPS zawierające informacje o zdarzeniu do określonego punktu końcowego. Punkt końcowy może następnie przetworzyć element webhook i działać odpowiednio.

W poniższych sekcjach szczegółowo opisano schemat żądań elementu webhook generowanych przez obsługiwane zdarzenia. Sekcje zdarzenia zawierają schemat ładunku dla typu zdarzenia, przykładowy ładunek żądania i co najmniej jedno przykładowe polecenia, które wyzwoliłyby element webhook.

Aby uzyskać informacje na temat konfigurowania elementów webhook dla rejestru kontenerów platformy Azure, zobacz Using Azure Container Registry webhooks (Używanie elementów webhook usługi Azure Container Registry).

Żądania elementu webhook

Żądanie systemu HTTP

Wyzwalany element webhook wysyła żądanie HTTP POST do punktu końcowego adresu URL określonego podczas konfigurowania elementu webhook.

Nagłówki HTTP

Żądania elementu webhook zawierają wartość , Content-Type application/json jeśli nie określono niestandardowego Content-Type nagłówka elementu webhook.

Żadne inne nagłówki nie są dodawane do żądania poza nagłówkami niestandardowymi, które mogły zostać określone dla elementu webhook.

Zdarzenie wypychania

Element webhook został wyzwolony po wypchnięciu obrazu kontenera do repozytorium.

Wypychanie ładunku zdarzenia

Element Type opis
id String Identyfikator zdarzenia elementu webhook.
timestamp DateTime Godzina wyzwolenia zdarzenia elementu webhook.
action String Akcja, która wyzwoliła zdarzenie elementu webhook.
cel Typ złożony Element docelowy zdarzenia, które wyzwoliło zdarzenie elementu webhook.
prosić Typ złożony Żądanie, które wygenerowało zdarzenie elementu webhook.

target

Element Type opis
mediaType String Typ MIME obiektu, do których odwołuje się odwołanie.
size Int32 Liczba bajtów zawartości. Tak samo jak pole Długość.
digest String Skrót zawartości zdefiniowanej przez specyfikację interfejsu API HTTP rejestru w wersji 2.
length Int32 Liczba bajtów zawartości. Tak samo jak pole Rozmiar.
repository String Nazwa repozytorium.
tag String Nazwa tagu obrazu.

żądanie

Element Type opis
id String Identyfikator żądania, które zainicjowało zdarzenie.
host String Zewnętrznie dostępna nazwa hosta wystąpienia rejestru określona przez nagłówek hosta HTTP dla żądań przychodzących.
method String Metoda żądania, która wygenerowała zdarzenie.
useragent String Nagłówek agenta użytkownika żądania.

Przykład ładunku: zdarzenie wypychania obrazu

{
  "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\\))"
  }
}

Przykładowe polecenie interfejsu wiersza polecenia platformy Docker, które wyzwala element webhook zdarzenia wypychania obrazu:

docker push myregistry.azurecr.io/hello-world:v1

Zdarzenie wypychania wykresu

Element webhook został wyzwolony po wypchnięciu wykresu Helm do repozytorium.

Ładunek zdarzenia wypychania wykresu

Element Type opis
id String Identyfikator zdarzenia elementu webhook.
timestamp DateTime Godzina wyzwolenia zdarzenia elementu webhook.
action String Akcja, która wyzwoliła zdarzenie elementu webhook.
cel Typ złożony Element docelowy zdarzenia, które wyzwoliło zdarzenie elementu webhook.

target

Element Type opis
mediaType String Typ MIME obiektu, do których odwołuje się odwołanie.
size Int32 Liczba bajtów zawartości.
digest String Skrót zawartości zdefiniowanej przez specyfikację interfejsu API HTTP rejestru w wersji 2.
repository String Nazwa repozytorium.
tag String Nazwa tagu wykresu.
name String Nazwa wykresu.
version String Wersja wykresu.

Przykład ładunku: zdarzenie wypychania wykresu

{
  "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"
  }
}

Przykładowe polecenie interfejsu wiersza polecenia platformy Azure, które wyzwala element webhook zdarzenia chart_push :

az acr helm push wordpress-5.4.0.tgz --name MyRegistry

Usuń zdarzenie

Element webhook jest wyzwalany po usunięciu repozytorium obrazów lub manifestu. Nie jest wyzwalany po usunięciu tagu.

Usuwanie ładunku zdarzenia

Element Type opis
id String Identyfikator zdarzenia elementu webhook.
timestamp DateTime Godzina wyzwolenia zdarzenia elementu webhook.
action String Akcja, która wyzwoliła zdarzenie elementu webhook.
cel Typ złożony Element docelowy zdarzenia, które wyzwoliło zdarzenie elementu webhook.
prosić Typ złożony Żądanie, które wygenerowało zdarzenie elementu webhook.

target

Element Type opis
mediaType String Typ MIME obiektu, do których odwołuje się odwołanie.
digest String Skrót zawartości zdefiniowanej przez specyfikację interfejsu API HTTP rejestru w wersji 2.
repository String Nazwa repozytorium.

żądanie

Element Type opis
id String Identyfikator żądania, które zainicjowało zdarzenie.
host String Zewnętrznie dostępna nazwa hosta wystąpienia rejestru określona przez nagłówek hosta HTTP dla żądań przychodzących.
method String Metoda żądania, która wygenerowała zdarzenie.
useragent String Nagłówek agenta użytkownika żądania.

Przykład ładunku: zdarzenie usuwania obrazu

{
    "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"
    }
  }

Przykładowe polecenia interfejsu wiersza polecenia platformy Azure, które wyzwalają element webhook zdarzenia usuwania :

# Delete repository
az acr repository delete --name MyRegistry --repository MyRepository

# Delete image
az acr repository delete --name MyRegistry --image MyRepository:MyTag

Zdarzenie usuwania wykresu

Element webhook został wyzwolony po usunięciu pakietu Helm lub repozytorium.

Wykres usuwa ładunek zdarzenia

Element Type opis
id String Identyfikator zdarzenia elementu webhook.
timestamp DateTime Godzina wyzwolenia zdarzenia elementu webhook.
action String Akcja, która wyzwoliła zdarzenie elementu webhook.
cel Typ złożony Element docelowy zdarzenia, które wyzwoliło zdarzenie elementu webhook.

target

Element Type opis
mediaType String Typ MIME obiektu, do których odwołuje się odwołanie.
size Int32 Liczba bajtów zawartości.
digest String Skrót zawartości zdefiniowanej przez specyfikację interfejsu API HTTP rejestru w wersji 2.
repository String Nazwa repozytorium.
tag String Nazwa tagu wykresu.
name String Nazwa wykresu.
version String Wersja wykresu.

Przykład ładunku: zdarzenie usuwania wykresu

{
  "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"
  }
}

Przykładowe polecenie interfejsu wiersza polecenia platformy Azure, które wyzwala element webhook zdarzenia chart_delete :

az acr helm delete wordpress --version 5.4.0 --name MyRegistry

Następne kroki

Korzystanie z elementów webhook usługi Azure Container Registry