Referensi webhook Azure Container Registry

Anda dapat mengkonfigurasi webhook untuk registri kontainer Anda yang menghasilkan peristiwa ketika tindakan tertentu dilakukan terhadapnya. Misalnya, aktifkan webhook yang dipicu saat gambar kontainer atau bagan Helm didorong ke registri, atau dihapus. Ketika webhook dipicu, Azure Container Registry mengeluarkan permintaan HTTP atau HTTPS yang berisi informasi tentang peristiwa tersebut ke titik akhir yang Anda tentukan. Titik akhir Anda kemudian dapat memproses webhook dan bertindak sesuai dengan hal tersebut.

Bagian berikut merinci skema permintaan webhook yang dihasilkan oleh peristiwa yang didukung. Bagian acara berisi skema muatan untuk jenis peristiwa, contoh permintaan muatan, dan satu atau beberapa contoh perintah yang akan memicu webhook.

Untuk informasi tentang mengkonfigurasi webhook untuk registri kontainer Azure Anda, lihat Menggunakan webhook Azure Container Registry.

Permintaan webhook

Permintaan HTTP

Webhook yang dipicu membuat permintaan POST HTTP ke titik akhir URL yang Anda tentukan saat mengkonfigurasi webhook.

Header HTTP

Permintaan webhook menyertakan Content-Type dari application/json jika Anda belum menentukan header kustom Content-Type untuk webhook Anda.

Tidak ada header lain yang diminta di luar header kustom yang mungkin Anda tentukan untuk webhook.

Pendorongan acara

Webhook dipicu ketika gambar kontainer didorong ke repositori.

Pendorongan payload peristiwa

Elemen Jenis Deskripsi
id String ID dari peristiwa webhook.
timestamp DateTime Waktu di mana peristiwa webhook dipicu.
action String Aksi yang memicu peristiwa webhook tersebut.
target Jenis Kompleks Target peristiwa yang memicu peristiwa webhook.
Permintaan Jenis Kompleks Permintaan yang menghasilkan peristiwa webhook.

target

Elemen Jenis Deskripsi
mediaType String Jenis MIME dari objek yang direferensikan.
size Int32 Jumlah byte konten. Sama seperti bidang Panjang.
digest String Ringkasan konten, seperti yang ditentukan oleh Spesifikasi API HTTP Registry V2.
length Int32 Jumlah byte konten. Sama seperti bidang Size.
repository String Nama Repositori.
tag String Nama tag gambar.

permintaan

Elemen Jenis Deskripsi
id String ID permintaan yang memulai peristiwa.
host String Nama host yang dapat diakses secara eksternal dari instans registri, seperti yang ditentukan oleh header host http pada permintaan yang masuk.
method String Metode permintaan yang menghasilkan peristiwa.
useragent String Header agen pengguna permintaan.

Contoh payload: peristiwa dorongan gambar

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

Contoh perintah Docker CLI yang memicu webhook peristiwa pendorongan gambar:

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

Peristiwa pendorongan bagan

Webhook terpicu ketika bagan Helm didorong ke repositori.

Payload peristiwa pendorongan bagan

Elemen Jenis Deskripsi
id String ID dari peristiwa webhook.
timestamp DateTime Waktu di mana peristiwa webhook dipicu.
action String Aksi yang memicu peristiwa webhook tersebut.
target Jenis Kompleks Target peristiwa yang memicu peristiwa webhook.

target

Elemen Jenis Deskripsi
mediaType String Jenis MIME dari objek yang direferensikan.
size Int32 Jumlah byte konten.
digest String Ringkasan konten, seperti yang ditentukan oleh Spesifikasi API HTTP Registry V2.
repository String Nama Repositori.
tag String Nama tag bagan.
name String Nama bagan.
version String Versi bagan.

Contoh payload: peristiwa dorongan bagan

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

Contoh perintah Azure CLI yang memicu webhook acara chart_push:

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

Menghapus acara

Webhook dipicu ketika repositori gambar atau manifes dihapus. Tidak dipicu ketika tag dihapus.

Menghapus payload peristiwa

Elemen Jenis Deskripsi
id String ID dari peristiwa webhook.
timestamp DateTime Waktu di mana peristiwa webhook dipicu.
action String Aksi yang memicu peristiwa webhook tersebut.
target Jenis Kompleks Target peristiwa yang memicu peristiwa webhook.
Permintaan Jenis Kompleks Permintaan yang menghasilkan peristiwa webhook.

target

Elemen Jenis Deskripsi
mediaType String Jenis MIME dari objek yang direferensikan.
digest String Ringkasan konten, seperti yang ditentukan oleh Spesifikasi API HTTP Registry V2.
repository String Nama Repositori.

permintaan

Elemen Jenis Deskripsi
id String ID permintaan yang memulai peristiwa.
host String Nama host yang dapat diakses secara eksternal dari instans registri, seperti yang ditentukan oleh header host http pada permintaan yang masuk.
method String Metode permintaan yang menghasilkan peristiwa.
useragent String Header agen pengguna permintaan.

Contoh payload: peristiwa penghapusan gambar

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

Contoh perintah Azure CLI yang memicu webhook peristiwa penghapusan:

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

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

Peristiwa penghapusan bagan

Webhook terpicu ketika bagan atau repositori Helm dihapus.

Payload peristiwa penghapusan bagan

Elemen Jenis Deskripsi
id String ID dari peristiwa webhook.
timestamp DateTime Waktu di mana peristiwa webhook dipicu.
action String Aksi yang memicu peristiwa webhook tersebut.
target Jenis Kompleks Target peristiwa yang memicu peristiwa webhook.

target

Elemen Jenis Deskripsi
mediaType String Jenis MIME dari objek yang direferensikan.
size Int32 Jumlah byte konten.
digest String Ringkasan konten, seperti yang ditentukan oleh Spesifikasi API HTTP Registry V2.
repository String Nama Repositori.
tag String Nama tag bagan.
name String Nama bagan.
version String Versi bagan.

Contoh payload: peristiwa penghapusan bagan

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

Contoh perintah Azure CLI yang memicu webhook peristiwa chart_delete:

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

Langkah berikutnya

Menggunakan webhook Azure Container Registry