Azure Container Registry webhooku – referenční dokumentace

Pro registr kontejneru můžete nakonfigurovat webhooky , které generují události při provádění určitých akcí. Můžete například povolit webhooky, které se aktivují, když se image kontejneru nebo chart Helm nasdílí do registru nebo odstraní. Při aktivaci webhooku Azure Container Registry vydá požadavek HTTP nebo HTTPS obsahující informace o události na zadaný koncový bod. Koncový bod pak může webhook zpracovat a podle toho se chovat.

Následující části podrobně popisuje schéma požadavků webhooku generovaných podporovanými událostmi. Oddíly událostí obsahují schéma datové části pro typ události, ukázkovou datovou část požadavku a jeden nebo více ukázkových příkazů, které by aktivovaly webhook.

Informace o konfiguraci webhooků pro registr kontejnerů Azure najdete v tématu Použití Azure Container Registry webhooků.

Požadavky webhooku

Požadavek HTTP

Aktivovaný webhook vytvoří požadavek HTTP POST na koncový bod adresy URL, který jste zadali při konfiguraci webhooku.

Hlavičky HTTP

Požadavky webhooku Content-Type obsahují hodnotu , application/json pokud jste pro webhook nezadáli vlastní hlavičku Content-Type .

Kromě vlastních hlaviček, které jste možná zadali pro webhook, se do požadavku nepřidají žádné další hlavičky.

Nasdílení události

Webhook se aktivuje, když se image kontejneru nasdílí do úložiště.

Datová část nabízené události

Prvek Typ Popis
id Řetězec ID události webhooku.
timestamp DateTime Čas, ve kterém se aktivovala událost webhooku.
action Řetězec Akce, která aktivovala událost webhooku.
Cíl Komplexní typ Cíl události, která aktivovala událost webhooku.
Požadavek Komplexní typ Požadavek, který vygeneroval událost webhooku.

Cíl

Prvek Typ Popis
mediaType Řetězec Typ MIME odkazovaného objektu.
size Int32 Počet bajtů obsahu. Stejné jako v poli Délka.
digest Řetězec Hodnota hash obsahu definovaná specifikací rozhraní HTTP API registru v2.
length Int32 Počet bajtů obsahu. Stejné jako pole Velikost.
repository Řetězec Název úložiště.
tag Řetězec Název značky obrázku.

Požadavek

Prvek Typ Popis
id Řetězec ID požadavku, který událost inicioval.
host Řetězec Externě přístupný název hostitele instance registru zadaný hlavičkou hostitele HTTP pro příchozí požadavky.
method Řetězec Metoda požadavku, která událost vygenerovala.
useragent Řetězec Hlavička uživatelského agenta požadavku.

Příklad datové části: událost nabízení obrázků

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

Příklad příkazu Rozhraní příkazového řádku Dockeru , který aktivuje webhook události nabízení image:

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

Událost nabízení grafu

Webhook se aktivuje při vložení grafu Helmu do úložiště.

Datová část události nabízeného grafu

Prvek Typ Popis
id Řetězec ID události webhooku.
timestamp DateTime Čas, ve kterém se aktivovala událost webhooku.
action Řetězec Akce, která aktivovala událost webhooku.
Cíl Komplexní typ Cíl události, která aktivovala událost webhooku.

Cíl

Prvek Typ Popis
mediaType Řetězec Typ MIME odkazovaného objektu.
size Int32 Počet bajtů obsahu.
digest Řetězec Hodnota hash obsahu definovaná specifikací rozhraní HTTP API registru v2.
repository Řetězec Název úložiště.
tag Řetězec Název značky grafu.
name Řetězec Název grafu.
version Řetězec Verze grafu.

Příklad datové části: událost nabízení grafu

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

Příklad příkazu Azure CLI , který aktivuje webhook události chart_push :

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

Odstranit událost

Webhook se aktivuje při odstranění úložiště obrázků nebo manifestu. Při odstranění značky se neaktivuje.

Odstranění datové části události

Prvek Typ Popis
id Řetězec ID události webhooku.
timestamp DateTime Čas, ve kterém se aktivovala událost webhooku.
action Řetězec Akce, která aktivovala událost webhooku.
Cíl Komplexní typ Cíl události, která aktivovala událost webhooku.
Požadavek Komplexní typ Požadavek, který vygeneroval událost webhooku.

Cíl

Prvek Typ Popis
mediaType Řetězec Typ MIME odkazovaného objektu.
digest Řetězec Hodnota hash obsahu definovaná specifikací rozhraní HTTP API registru v2.
repository Řetězec Název úložiště.

Požadavek

Prvek Typ Popis
id Řetězec ID požadavku, který událost inicioval.
host Řetězec Externě přístupný název hostitele instance registru zadaný hlavičkou hostitele HTTP pro příchozí požadavky.
method Řetězec Metoda požadavku, která událost vygenerovala.
useragent Řetězec Hlavička uživatelského agenta požadavku.

Příklad datové části: událost odstranění obrázku

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

Příklady příkazů Azure CLI , které aktivují webhook události odstranění :

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

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

Událost odstranění grafu

Webhook se aktivuje při odstranění chartu Helm nebo úložiště.

Datová část události odstranění grafu

Prvek Typ Popis
id Řetězec ID události webhooku.
timestamp DateTime Čas, ve kterém se aktivovala událost webhooku.
action Řetězec Akce, která aktivovala událost webhooku.
Cíl Komplexní typ Cíl události, která aktivovala událost webhooku.

Cíl

Prvek Typ Popis
mediaType Řetězec Typ MIME odkazovaného objektu.
size Int32 Počet bajtů obsahu.
digest Řetězec Hodnota hash obsahu definovaná specifikací rozhraní HTTP API registru v2.
repository Řetězec Název úložiště.
tag Řetězec Název značky grafu.
name Řetězec Název grafu.
version Řetězec Verze grafu.

Příklad datové části: událost odstranění grafu

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

Příklad příkazu Azure CLI , který aktivuje webhook události chart_delete :

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

Další kroky

Používání webhooků Azure Container Registry