Поделиться через


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

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

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

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

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

HTTP-запрос

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

Заголовки HTTP

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

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

Событие Push

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

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

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

целевой объект

Элемент Тип Описание:
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 Строка Действие, которое привело к созданию события веб-перехватчика.
целевой объект Сложный тип Целевой объект для действия, которое привело к созданию события веб-перехватчика.

целевой объект

Элемент Тип Описание:
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 Строка Действие, которое привело к созданию события веб-перехватчика.
целевой объект Сложный тип Целевой объект для действия, которое привело к созданию события веб-перехватчика.
request Сложный тип Запрос, который создал событие веб-перехватчика.

целевой объект

Элемент Тип Описание:
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 Строка Действие, которое привело к созданию события веб-перехватчика.
целевой объект Сложный тип Целевой объект для действия, которое привело к созданию события веб-перехватчика.

целевой объект

Элемент Тип Описание:
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