Event Grid ソースとして Azure Container Registry
この記事では、Container Registry イベントのプロパティとスキーマについて説明します。 イベント スキーマの概要については、「Azure Event Grid イベント スキーマ」を参照してください。
使用可能なイベントの種類
Azure Container Registry では、次の種類のイベントが生成されます。
イベントの種類 | 説明 |
---|---|
Microsoft.ContainerRegistry.ImagePushed | イメージがプッシュされたときに発生します。 |
Microsoft.ContainerRegistry.ImageDeleted | イメージが削除されたときに発生します。 |
Microsoft.ContainerRegistry.ChartPushed | Helm チャートがプッシュされたときに発生します。 |
Microsoft.ContainerRegistry.ChartDeleted | Helm チャートが削除されたときに発生します。 |
イベントの例
次の例は、イメージ プッシュ イベントのスキーマを示しています。
[{
"id": "831e1650-001e-001b-66ab-eeb76e069631",
"source": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ContainerRegistry/registries/<name>",
"subject": "aci-helloworld:v1",
"type": "Microsoft.ContainerRegistry.ImagePushed",
"time": "2018-04-25T21:39:47.6549614Z",
"data": {
"id": "31c51664-e5bd-416a-a5df-e5206bc47ed0",
"timestamp": "2018-04-25T21:39:47.276585742Z",
"action": "push",
"target": {
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"size": 3023,
"digest": "sha256:213bbc182920ab41e18edc2001e06abcca6735d87782d9cef68abd83941cf0e5",
"length": 3023,
"repository": "aci-helloworld",
"tag": "v1"
},
"request": {
"id": "7c66f28b-de19-40a4-821c-6f5f6c0003a4",
"host": "demo.azurecr.io",
"method": "PUT",
"useragent": "docker/18.03.0-ce go/go1.9.4 git-commit/0520e24 os/windows arch/amd64 UpstreamClient(Docker-Client/18.03.0-ce \\\\(windows\\\\))"
}
},
"specversion": "1.0"
}]
イメージ削除イベントのスキーマも似ています。
[{
"id": "f06e3921-301f-42ec-b368-212f7d5354bd",
"source": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ContainerRegistry/registries/<name>",
"subject": "aci-helloworld",
"type": "Microsoft.ContainerRegistry.ImageDeleted",
"time": "2018-04-26T17:56:01.8211268Z",
"data": {
"id": "f06e3921-301f-42ec-b368-212f7d5354bd",
"timestamp": "2018-04-26T17:56:00.996603117Z",
"action": "delete",
"target": {
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"digest": "sha256:213bbc182920ab41e18edc2001e06abcca6735d87782d9cef68abd83941cf0e5",
"repository": "aci-helloworld"
},
"request": {
"id": "aeda5b99-4197-409f-b8a8-ff539edb7de2",
"host": "demo.azurecr.io",
"method": "DELETE",
"useragent": "python-requests/2.18.4"
}
},
"specversion": "1.0"
}]
チャート プッシュ イベントのスキーマはイメージ プッシュ イベントのスキーマと似ていますが、要求オブジェクトは含まれません。
[{
"id": "ea3a9c28-5b17-40f6-a500-3f02b6829277",
"source": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ContainerRegistry/registries/<name>",
"subject": "mychart:1.0.0",
"type": "Microsoft.ContainerRegistry.ChartPushed",
"time": "2019-03-12T22:16:31.5164086Z",
"data": {
"id":"ea3a9c28-5b17-40f6-a500-3f02b682927",
"timestamp":"2019-03-12T22:16:31.0087496+00:00",
"action":"chart_push",
"target":{
"mediaType":"application/vnd.acr.helm.chart",
"size":25265,
"digest":"sha256:7f060075264b5ba7c14c23672698152ae6a3ebac1c47916e4efe19cd624d5fab",
"repository":"repo",
"tag":"mychart-1.0.0.tgz",
"name":"mychart",
"version":"1.0.0"
}
},
"specversion": "1.0"
}]
チャート削除イベントのスキーマはイメージ削除イベントのスキーマと似ていますが、要求オブジェクトは含まれません。
[{
"id": "39136b3a-1a7e-416f-a09e-5c85d5402fca",
"source": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ContainerRegistry/registries/<name>",
"subject": "mychart:1.0.0",
"type": "Microsoft.ContainerRegistry.ChartDeleted",
"time": "019-03-12T22:42:08.7034064Z",
"data": {
"id":"ea3a9c28-5b17-40f6-a500-3f02b682927",
"timestamp":"2019-03-12T22:42:08.3783775+00:00",
"action":"chart_delete",
"target":{
"mediaType":"application/vnd.acr.helm.chart",
"size":25265,
"digest":"sha256:7f060075264b5ba7c14c23672698152ae6a3ebac1c47916e4efe19cd624d5fab",
"repository":"repo",
"tag":"mychart-1.0.0.tgz",
"name":"mychart",
"version":"1.0.0"
}
},
"specversion": "1.0"
}]
イベントのプロパティ
イベントのトップレベルのデータを次に示します。
プロパティ | タイプ | 説明 |
---|---|---|
source |
string | イベント ソースの完全なリソース パス。 このフィールドは書き込み可能ではありません。 この値は Event Grid によって指定されます。 |
subject |
string | 発行元が定義したイベントの対象のパス。 |
type |
string | このイベント ソース用に登録されたイベントの種類のいずれか。 |
time |
string | プロバイダーの UTC 時刻に基づくイベントの生成時刻。 |
id |
string | イベントの一意識別子。 |
data |
object | Blob Storage イベントのデータ。 |
specversion |
string | CloudEvents スキーマ仕様バージョン。 |
データ オブジェクトには、次のプロパティがあります。
プロパティ | タイプ | 説明 |
---|---|---|
id |
string | イベント ID。 |
timestamp |
string | イベントが発生した時刻。 |
action |
string | 指定されたイベントを引き起こすアクション。 |
target |
object | イベントのターゲット。 |
request |
object | イベントを生成した要求。 |
ターゲット オブジェクトには、次のプロパティがあります。
プロパティ | タイプ | 説明 |
---|---|---|
mediaType |
string | 参照されているオブジェクトの MIME の種類。 |
size |
整数 (integer) | コンテンツのバイト数。 length フィールドと同じです。 |
digest |
string | コンテンツのダイジェスト。Registry V2 HTTP API 仕様で定義されています。 |
length |
整数 (integer) | コンテンツのバイト数。 size フィールドと同じです。 |
repository |
string | リポジトリの名前。 |
tag |
string | タグ名。 |
name |
string | チャートの名前。 |
version |
string | チャートのバージョン。 |
要求オブジェクトには、次のプロパティがあります。
プロパティ | タイプ | 説明 |
---|---|---|
id |
string | イベントを開始した要求の ID。 |
addr |
string | IP またはホスト名。イベントを開始したクライアント接続のポートの可能性もあります。 この値は、標準 http 要求からの RemoteAddr です。 |
host |
string | レジストリ インスタンスの外部からアクセス可能なホスト名。受信した要求の http ホスト ヘッダーで指定されています。 |
method |
string | イベントを生成した要求メソッド。 |
useragent |
string | 要求のユーザー エージェント ヘッダー。 |
connectedRegistry オブジェクトには、次のプロパティがあります。
プロパティ | タイプ | 説明 |
---|---|---|
name |
string | このイベントを生成した接続されたレジストリの名前。 |
チュートリアルと方法
タイトル | 説明 |
---|---|
クイック スタート: コンテナー レジストリ イベントを送信する | Azure CLI を使って Container Registry イベントを送信する方法を示します。 |
次のステップ
- Azure Event Grid の概要については、Event Grid の紹介に関する記事を参照してください。
- Azure Event Grid サブスクリプションの作成の詳細については、Event Grid サブスクリプション スキーマに関する記事を参照してください。