Azure Container Registry webhook リファレンス
コンテナー レジストリに対して特定のアクションが実行されたときにイベントを生成する、コンテナー レジストリの webhook を構成することができます。 たとえば、コンテナー イメージまたは Helm chart がレジストリにプッシュされたとき、または削除されたときにトリガーされる Webhook を有効にします。 webhook がトリガーされると、Azure Container Registry は、イベントに関する情報を含む HTTP または HTTPS 要求を、ユーザーが指定したエンドポイントに対して発行します。 エンドポイントは webhook を処理し、適切に対応できます。
以下のセクションでは、サポートされるイベントによって生成される webhook 要求のスキーマについて詳しく説明します。 イベントに関するセクションには、そのイベントの種類のペイロード スキーマ、要求のペイロードの例、および webhook をトリガーするコマンドの例が含まれます。
Azure Container Registry webhook の構成方法については、「Azure Container Registry webhook の使用」をご覧ください。
webhook の要求
HTTP 要求
トリガーされた webhook は、ユーザーが webhook を構成するときに指定した URL エンドポイントに対して、HTTP POST
要求を行います。
HTTP ヘッダー
ユーザーが webhook の Content-Type
カスタム ヘッダーを指定していない場合、webhook 要求には application/json
の Content-Type
が含まれます。
ユーザーが webhook に指定したカスタム ヘッダー以外に、他のヘッダーが要求に追加されることはありません。
push イベント
コンテナー イメージがリポジトリにプッシュされるとトリガーされる webhook です。
push イベントのペイロード
要素 | Type | 説明 |
---|---|---|
id |
String | webhook イベントの ID。 |
timestamp |
DateTime | webhook イベントがトリガーされた日時。 |
action |
String | webhook イベントをトリガーしたアクション。 |
target | 複合型 | webhook イベントをトリガーしたイベントのターゲット。 |
request | 複合型 | webhook イベントを生成した要求。 |
ターゲット (target)
要素 | Type | 説明 |
---|---|---|
mediaType |
String | 参照されているオブジェクトの MIME の種類。 |
size |
Int32 | コンテンツのバイト数。 length フィールドと同じです。 |
digest |
String | コンテンツのダイジェスト。Registry V2 HTTP API 仕様で定義されています。 |
length |
Int32 | コンテンツのバイト数。 size フィールドと同じです。 |
repository |
String | リポジトリの名前。 |
tag |
String | イメージ タグの名前。 |
request
要素 | Type | 説明 |
---|---|---|
id |
String | イベントを開始した要求の ID。 |
host |
String | レジストリ インスタンスの外部からアクセス可能なホスト名。受信した要求の HTTP ホスト ヘッダーで指定されています。 |
method |
String | イベントを生成した要求メソッド。 |
useragent |
String | 要求のユーザー エージェント ヘッダー。 |
ペイロードの例: イメージの push イベント
{
"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\\))"
}
}
イメージの push イベント Webhook をトリガーする Docker CLI コマンドの例:
docker push myregistry.azurecr.io/hello-world:v1
chart の push イベント
Helm chart がリポジトリにプッシュされるとトリガーされる Webhook。
chart の push イベントのペイロード
要素 | Type | 説明 |
---|---|---|
id |
String | webhook イベントの ID。 |
timestamp |
DateTime | webhook イベントがトリガーされた日時。 |
action |
String | webhook イベントをトリガーしたアクション。 |
target | 複合型 | webhook イベントをトリガーしたイベントのターゲット。 |
ターゲット (target)
要素 | Type | 説明 |
---|---|---|
mediaType |
String | 参照されているオブジェクトの MIME の種類。 |
size |
Int32 | コンテンツのバイト数。 |
digest |
String | コンテンツのダイジェスト。Registry V2 HTTP API 仕様で定義されています。 |
repository |
String | リポジトリの名前。 |
tag |
String | chart のタグ名。 |
name |
String | チャートの名前。 |
version |
String | チャートのバージョン。 |
ペイロードの例: chart の push イベント
{
"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"
}
}
chart_push イベント Webhook をトリガーする Azure CLI コマンドの例:
az acr helm push wordpress-5.4.0.tgz --name MyRegistry
インベントリを削除する
イメージのリポジトリまたはマニフェストが削除されるとトリガーされる Webhook。 タグが削除されたときはトリガーされません。
delete イベントのペイロード
要素 | Type | 説明 |
---|---|---|
id |
String | webhook イベントの ID。 |
timestamp |
DateTime | webhook イベントがトリガーされた日時。 |
action |
String | webhook イベントをトリガーしたアクション。 |
target | 複合型 | webhook イベントをトリガーしたイベントのターゲット。 |
request | 複合型 | webhook イベントを生成した要求。 |
ターゲット (target)
要素 | Type | 説明 |
---|---|---|
mediaType |
String | 参照されているオブジェクトの MIME の種類。 |
digest |
String | コンテンツのダイジェスト。Registry V2 HTTP API 仕様で定義されています。 |
repository |
String | リポジトリの名前。 |
request
要素 | Type | 説明 |
---|---|---|
id |
String | イベントを開始した要求の ID。 |
host |
String | レジストリ インスタンスの外部からアクセス可能なホスト名。受信した要求の HTTP ホスト ヘッダーで指定されています。 |
method |
String | イベントを生成した要求メソッド。 |
useragent |
String | 要求のユーザー エージェント ヘッダー。 |
ペイロードの例: イメージの delete イベント
{
"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"
}
}
delete イベント webhook をトリガーする Azure CLI コマンドの例:
# Delete repository
az acr repository delete --name MyRegistry --repository MyRepository
# Delete image
az acr repository delete --name MyRegistry --image MyRepository:MyTag
chart の delete イベント
Helm chart またはリポジトリが削除されるとトリガーされる Webhook。
chart の delete イベントのペイロード
要素 | Type | 説明 |
---|---|---|
id |
String | webhook イベントの ID。 |
timestamp |
DateTime | webhook イベントがトリガーされた日時。 |
action |
String | webhook イベントをトリガーしたアクション。 |
target | 複合型 | webhook イベントをトリガーしたイベントのターゲット。 |
ターゲット (target)
要素 | Type | 説明 |
---|---|---|
mediaType |
String | 参照されているオブジェクトの MIME の種類。 |
size |
Int32 | コンテンツのバイト数。 |
digest |
String | コンテンツのダイジェスト。Registry V2 HTTP API 仕様で定義されています。 |
repository |
String | リポジトリの名前。 |
tag |
String | chart のタグ名。 |
name |
String | チャートの名前。 |
version |
String | チャートのバージョン。 |
ペイロードの例: chart の delete イベント
{
"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"
}
}
chart_delete イベント Webhook をトリガーする Azure CLI コマンドの例:
az acr helm delete wordpress --version 5.4.0 --name MyRegistry