Справочник по веб-перехватчику реестра контейнеров Azure

Вы можете настроить веб-перехватчики для реестра контейнеров, которые создают события при выполнении с ними определенных действий. Например, включите веб-перехватчики, запускаемые при отправке в реестр образа контейнера или диаграммы Helm или при их удалении. Когда срабатывает веб-перехватчик, реестр контейнеров Azure направляет на указанную вами конечную точку запрос HTTP или HTTPS с информацией об этом событии. Конечная точка может обработать данные от веб-перехватчика и выполнить необходимые действия.

В следующих разделах подробно описана схема запросов веб-перехватчика, которые создаются для поддерживаемых событий. Раздел, посвященный событиям, описывает схему полезных данных схемы для типов событий, предоставляет пример полезных данных этого запроса и пару примеров команд, которые приводят к срабатыванию веб-перехватчика.

Сведения о настройке веб-перехватчиков для реестра контейнеров Azure см. в статье Использование веб-перехватчиков реестра контейнеров Azure.

Запросы веб-перехватчика

HTTP-запрос

Веб-перехватчик при срабатывании отправляет HTTP-запрос POST на URL-адрес конечной точки, которую вы указали при настройке этого веб-перехватчика.

Заголовки HTTP

Запросы веб-перехватчика содержат заголовок Content-Type со значением application/json, если вы не указали для него пользовательское значение Content-Type.

В запрос не добавляются другие заголовки, кроме указанных для веб-перехватчика пользовательских заголовков.

Событие Push

Веб-перехватчик срабатывает при отправке образа контейнера в репозиторий.

Полезные данные события Push

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

target

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

запрос

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

Пример полезных данных: событие 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\\))"
  }
}

Пример команды Docker CLI, активирующей веб-перехватчик события Push образа:

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

Событие Push диаграммы

Веб-перехватчик срабатывает при отправке диаграммы Helm в репозиторий.

Полезные данные события Push диаграммы

Элемент Тип Описание
id Строка Идентификатор события веб-перехватчика.
timestamp Дата и время Время создания события веб-перехватчика.
action Строка Действие, которое привело к созданию события веб-перехватчика.
target Сложный тип Целевой объект для действия, которое привело к созданию события веб-перехватчика.

target

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

Пример полезных данных: событие 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"
  }
}

Пример команды Azure CLI, активирующей веб-перехватчик события chart_push:

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

Удаление события

Веб-перехватчик срабатывает при удалении репозитория образа или манифеста. Событие не создается при удалении тега.

Полезные данные события Delete

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

target

Элемент Тип Описание
mediaType Строка Тип MIME передаваемого объекта.
digest Строка Хэш-код содержимого, как определено в спецификации API HTTP версии 2 реестра.
repository Строка Имя репозитория.

запрос

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

Пример полезных данных: событие удаления образа

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

Примеры команд Azure CLI, которые активируют удаление события веб-перехватчика.

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

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

Событие удаления диаграммы

Веб-перехватчик срабатывает при удалении диаграммы Helm или репозитория.

Полезные данные события удаления диаграммы

Элемент Тип Описание
id Строка Идентификатор события веб-перехватчика.
timestamp Дата и время Время создания события веб-перехватчика.
action Строка Действие, которое привело к созданию события веб-перехватчика.
target Сложный тип Целевой объект для действия, которое привело к созданию события веб-перехватчика.

target

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

Пример полезных данных: событие удаления диаграммы

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

Пример команды Azure CLI, активирующей веб-перехватчик события chart_delete:

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

Дальнейшие действия

Использование веб-перехватчиков реестра контейнеров Azure