Реестр контейнеров Azure как источник службы "Сетка событий"

В этой статье описаны свойства и схема для событий Реестра контейнеров. Общие сведения о схемах событий см. в статье Схема событий службы "Сетка событий Azure".

Доступные типы событий

Реестр контейнеров Azure генерирует следующие типы событий.

Тип события Description
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"
}]

Свойства событий

Событие содержит следующие высокоуровневые данные:

Свойство Type Описание:
source строка Полный путь к ресурсу источника событий. Это поле защищено от записи. Это значение предоставляет Сетка событий.
subject строка Определенный издателем путь к субъекту события.
type строка Один из зарегистрированных типов событий для этого источника событий.
time строка Время создания события с учетом времени поставщика в формате UTC.
id строка Уникальный идентификатор события.
data объект Данные события хранилища BLOB-объектов.
specversion строка Версия спецификации схемы CloudEvents.

Объект данных имеет следующие свойства:

Свойство Type Описание:
id строка Идентификатор события.
timestamp строка Время возникновения события.
action строка Действие, которое включает в себя указанное событие.
target объект Целевой объект события.
request объект Запрос, который создал событие.

Целевой объект имеет следующие свойства:

Свойство Type Описание:
mediaType строка Тип MIME передаваемого объекта.
size integer Число байтов содержимого. Это значение совпадает со значением поля Length.
digest строка Хэш-код содержимого, как определено в спецификации API HTTP версии 2 реестра.
length integer Число байтов содержимого. Это значение совпадает со значением поля Size.
repository строка Имя репозитория.
tag строка Имя тега.
name строка Имя диаграммы.
version строка Версия диаграммы.

Объект запроса имеет следующие свойства:

Свойство Type Описание:
id строка Идентификатор запроса, инициировавшего событие.
addr строка IP-адрес или имя узла и, возможно, порт клиентского подключения, инициировавшего событие. Это значение — RemoteAddr из стандартного HTTP-запроса.
host строка Доступное из внешней сети имя узла на экземпляре реестра, которое указано в заголовке host во входящих HTTP-запросах.
method строка Метод запроса, который создал событие.
useragent строка Заголовок user agent из запроса.

Объект connectedRegistry имеет следующие свойства:

Свойство Type Описание:
name строка Имя подключенного реестра, который создал это событие.

Практические руководства и другие учебные материалы

Заголовок Description
Быстрое руководство по отправке событий реестра контейнеров Содержит сведения об отправке событий Реестра контейнеров с помощью Azure CLI.

Следующие шаги