Referencia de webhook de Azure Container Registry
También puede configurar webhooks para el registro de contenedor que generan eventos cuando se realizan determinadas acciones en el mismo. Por ejemplo, habilite webhooks que se desencadenan cuando una imagen de contenedor o gráfico de Helm se inserta en un registro o se elimina. Cuando se desencadena un webhook, Azure Container Registry emite una solicitud HTTP o HTTPS que contiene información sobre el evento a un punto de conexión que especifique. El punto de conexión, a continuación, puede procesar el webhook y actuar en consecuencia.
Las secciones siguientes detallan el esquema de las solicitudes de webhook generadas por eventos compatibles. Las secciones de evento contienen el esquema de carga para el tipo de evento, una carga de solicitud de ejemplo y uno o más comandos de ejemplo que desencadenarán el webhook.
Para obtener información acerca de cómo configurar webhooks para Azure Container Registry, consulte Uso de webhooks de Azure Container Registry.
Solicitudes de webhook
Solicitud HTTP
Un webhook desencadenado realiza una solicitud POST
HTTP a la dirección URL del punto de conexión que especificó cuando configuró el webhook.
Encabezados HTTP
Las solicitudes de webhook incluir un elemento Content-Type
de application/json
si no ha especificado un encabezado personalizado Content-Type
para el webhook.
No se agregan otros encabezados a la solicitud aparte de los encabezados personalizados que pueda haber especificado para el webhook.
Evento de inserción
Webhook que se desencadena cuando se inserta una imagen de contenedor en un repositorio.
Carga del evento de inserción
Elemento | Tipo | Description |
---|---|---|
id |
String | El identificador del evento de webhook. |
timestamp |
DateTime | La hora en la que se desencadenó el evento de webhook. |
action |
String | La acción que desencadenó el evento de webhook. |
Destino | Tipo complejo | El destino del evento que desencadenó el evento de webhook. |
Solicitud | Tipo complejo | La solicitud que generó el evento de webhook. |
Destino
Elemento | Tipo | Description |
---|---|---|
mediaType |
String | El tipo MIME del objeto al que se hace referencia. |
size |
Int32 | El número de bytes del contenido. Igual que el campo de longitud. |
digest |
String | El resumen del contenido, de acuerdo con la especificación de API HTTP V2 del registro. |
length |
Int32 | El número de bytes del contenido. Igual que el campo de tamaño. |
repository |
String | El nombre del repositorio. |
tag |
String | El nombre de etiqueta de imagen. |
request
Elemento | Tipo | Description |
---|---|---|
id |
String | El identificador de la solicitud que inició el evento. |
host |
String | El nombre de host accesible desde el exterior de la instancia del registro, según lo especificado por el encabezado de host HTTP en las solicitudes entrantes. |
method |
String | El método de la solicitud que generó el evento. |
useragent |
String | El encabezado de agente de usuario de la solicitud. |
Ejemplo de carga: evento de inserción de imagen
{
"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\\))"
}
}
Comando de la CLI de Docker de ejemplo que desencadena el webhook del evento de inserción de imagen:
docker push myregistry.azurecr.io/hello-world:v1
Evento de inserción de gráfico
Webhook que se desencadena cuando se inserta un gráfico de Helm en un repositorio.
Carga del evento de inserción de gráfico
Elemento | Tipo | Description |
---|---|---|
id |
String | El identificador del evento de webhook. |
timestamp |
DateTime | La hora en la que se desencadenó el evento de webhook. |
action |
String | La acción que desencadenó el evento de webhook. |
Destino | Tipo complejo | El destino del evento que desencadenó el evento de webhook. |
Destino
Elemento | Tipo | Description |
---|---|---|
mediaType |
String | El tipo MIME del objeto al que se hace referencia. |
size |
Int32 | El número de bytes del contenido. |
digest |
String | El resumen del contenido, de acuerdo con la especificación de API HTTP V2 del registro. |
repository |
String | El nombre del repositorio. |
tag |
String | El nombre de la etiqueta del gráfico. |
name |
String | El nombre del gráfico. |
version |
String | La versión del gráfico. |
Ejemplo de carga: evento de inserción del gráfico
{
"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"
}
}
Comando de la CLI de Azure de ejemplo que desencadena el webhook del evento chart_push:
az acr helm push wordpress-5.4.0.tgz --name MyRegistry
Eliminar evento
Webhook que se desencadena cuando se elimina un repositorio de imágenes o un manifiesto. No se desencadena cuando se elimina una etiqueta.
Carga del evento de eliminación
Elemento | Tipo | Description |
---|---|---|
id |
String | El identificador del evento de webhook. |
timestamp |
DateTime | La hora en la que se desencadenó el evento de webhook. |
action |
String | La acción que desencadenó el evento de webhook. |
Destino | Tipo complejo | El destino del evento que desencadenó el evento de webhook. |
Solicitud | Tipo complejo | La solicitud que generó el evento de webhook. |
Destino
Elemento | Tipo | Description |
---|---|---|
mediaType |
String | El tipo MIME del objeto al que se hace referencia. |
digest |
String | El resumen del contenido, de acuerdo con la especificación de API HTTP V2 del registro. |
repository |
String | El nombre del repositorio. |
request
Elemento | Tipo | Description |
---|---|---|
id |
String | El identificador de la solicitud que inició el evento. |
host |
String | El nombre de host accesible desde el exterior de la instancia del registro, según lo especificado por el encabezado de host HTTP en las solicitudes entrantes. |
method |
String | El método de la solicitud que generó el evento. |
useragent |
String | El encabezado de agente de usuario de la solicitud. |
Ejemplo de carga: evento de eliminación de imagen
{
"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"
}
}
Comandos de la CLI de Azure de ejemplo que desencadenan un webhook del evento de eliminación:
# Delete repository
az acr repository delete --name MyRegistry --repository MyRepository
# Delete image
az acr repository delete --name MyRegistry --image MyRepository:MyTag
Evento de eliminación de gráfico
Webhook que se desencadena cuando se elimina un gráfico de Helm o un repositorio.
Carga del evento de eliminación de gráfico
Elemento | Tipo | Description |
---|---|---|
id |
String | El identificador del evento de webhook. |
timestamp |
DateTime | La hora en la que se desencadenó el evento de webhook. |
action |
String | La acción que desencadenó el evento de webhook. |
Destino | Tipo complejo | El destino del evento que desencadenó el evento de webhook. |
Destino
Elemento | Tipo | Description |
---|---|---|
mediaType |
String | El tipo MIME del objeto al que se hace referencia. |
size |
Int32 | El número de bytes del contenido. |
digest |
String | El resumen del contenido, de acuerdo con la especificación de API HTTP V2 del registro. |
repository |
String | El nombre del repositorio. |
tag |
String | El nombre de la etiqueta del gráfico. |
name |
String | El nombre del gráfico. |
version |
String | La versión del gráfico. |
Ejemplo de carga: evento de eliminación de gráfico
{
"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"
}
}
Comando de la CLI de Azure de ejemplo que desencadena el webhook del evento chart_delete:
az acr helm delete wordpress --version 5.4.0 --name MyRegistry