Справочник по веб-перехватчику реестра контейнеров 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