Sdílet prostřednictvím


referenční informace k webhooku Azure Container Registry

Můžete nakonfigurovat webhooky pro registr kontejneru, které generují události, když se s ním provádějí určité akce. Povolte například webhooky, které se aktivují při vložení image kontejneru nebo chartu Helm do registru nebo odstranění. Při aktivaci webhooku služba Azure Container Registry vydá požadavek HTTP nebo HTTPS obsahující informace o události do zadaného koncového bodu. Koncový bod pak může webhook zpracovat a odpovídajícím způsobem jednat.

Následující části podrobně uvádějí schéma požadavků webhooků 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í webhooků služby Azure Container Registry.

Požadavky webhooků

Žádost HTTP

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

Záhlaví HTTP

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

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

Nasdílení události

Webhook se aktivuje, když se image kontejneru odešle do úložiště.

Datová část události push

Element (Prvek) Typ Description
id String ID události webhooku.
timestamp DateTime Čas, kdy byla událost webhooku aktivována.
action String Akce, která aktivovala událost webhooku.
cíl Komplexní typ Cíl události, která aktivovala událost webhooku.
prosba Komplexní typ Požadavek, který vygeneroval událost webhooku.

target

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

request

Element (Prvek) Typ Description
id String ID požadavku, který událost inicioval.
host String Externě přístupný název hostitele instance registru, jak je určeno hlavičkou hostitele HTTP příchozích požadavků.
method String Metoda požadavku, která vygenerovala událost.
useragent String Hlavička uživatelského agenta požadavku.

Příklad datové části: událost push image

{
  "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 push image:

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

Událost nabízení grafu

Webhook se aktivoval při nasdílení chartu Helm do úložiště.

Chart push event payload

Element (Prvek) Typ Description
id String ID události webhooku.
timestamp DateTime Čas, kdy byla událost webhooku aktivována.
action String Akce, která aktivovala událost webhooku.
cíl Komplexní typ Cíl události, která aktivovala událost webhooku.

target

Element (Prvek) Typ Description
mediaType String Typ MIME odkazovaného objektu.
size Int32 Počet bajtů obsahu
digest String Hodnota hash obsahu definovaná specifikací rozhraní HTTP API registru V2.
repository String Název úložiště.
tag String Název značky grafu.
name String Název grafu.
version String 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ě image nebo manifestu. Při odstranění značky se neaktivuje.

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

Element (Prvek) Typ Description
id String ID události webhooku.
timestamp DateTime Čas, kdy byla událost webhooku aktivována.
action String Akce, která aktivovala událost webhooku.
cíl Komplexní typ Cíl události, která aktivovala událost webhooku.
prosba Komplexní typ Požadavek, který vygeneroval událost webhooku.

target

Element (Prvek) Typ Description
mediaType String Typ MIME odkazovaného objektu.
digest String Hodnota hash obsahu definovaná specifikací rozhraní HTTP API registru V2.
repository String Název úložiště.

request

Element (Prvek) Typ Description
id String ID požadavku, který událost inicioval.
host String Externě přístupný název hostitele instance registru, jak je určeno hlavičkou hostitele HTTP příchozích požadavků.
method String Metoda požadavku, která vygenerovala událost.
useragent String 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 Nebo úložiště Helm.

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

Element (Prvek) Typ Description
id String ID události webhooku.
timestamp DateTime Čas, kdy byla událost webhooku aktivována.
action String Akce, která aktivovala událost webhooku.
cíl Komplexní typ Cíl události, která aktivovala událost webhooku.

target

Element (Prvek) Typ Description
mediaType String Typ MIME odkazovaného objektu.
size Int32 Počet bajtů obsahu
digest String Hodnota hash obsahu definovaná specifikací rozhraní HTTP API registru V2.
repository String Název úložiště.
tag String Název značky grafu.
name String Název grafu.
version String 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žití webhooků Azure Container Registry