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 イベントを送信する方法を示します。

次のステップ