Azure Container Registry referência de webhook
Pode configurar webhooks para o seu registo de contentor que geram eventos quando determinadas ações são executadas no mesmo. Por exemplo, ative webhooks que são acionados quando uma imagem de contentor ou gráfico Helm é emitido para um registo ou eliminado. Quando um webhook é acionado, Azure Container Registry emite um pedido HTTP ou HTTPS que contém informações sobre o evento para um ponto final que especificar. Em seguida, o ponto final pode processar o webhook e agir em conformidade.
As secções seguintes detalham o esquema dos pedidos de webhook gerados por eventos suportados. As secções de eventos contêm o esquema de payload para o tipo de evento, um payload de pedido de exemplo e um ou mais comandos de exemplo que acionariam o webhook.
Para obter informações sobre como configurar webhooks para o seu registo de contentor do Azure, veja Using Azure Container Registry webhooks (Utilizar webhooks do Azure Container Registry).
Pedidos de webhook
Pedido HTTP
Um webhook acionado faz um pedido HTTP POST
para o ponto final de URL que especificou quando configurou o webhook.
Cabeçalhos HTTP
Os pedidos de webhook incluem um Content-Type
de application/json
se não tiver especificado um Content-Type
cabeçalho personalizado para o seu webhook.
Não são adicionados outros cabeçalhos ao pedido para além dos cabeçalhos personalizados que poderá ter especificado para o webhook.
Evento push
O Webhook foi acionado quando uma imagem de contentor é enviada para um repositório.
Payload de evento push
Elemento | Tipo | Description |
---|---|---|
id |
String | O ID do evento do webhook. |
timestamp |
DateTime | A hora em que o evento do webhook foi acionado. |
action |
String | A ação que acionou o evento do webhook. |
destino | Tipo Complexo | O destino do evento que acionou o evento do webhook. |
pedido | Tipo Complexo | O pedido que gerou o evento do webhook. |
destino
Elemento | Tipo | Description |
---|---|---|
mediaType |
String | O tipo mime do objeto referenciado. |
size |
Int32 | O número de bytes do conteúdo. Igual ao campo Comprimento. |
digest |
String | O resumo do conteúdo, conforme definido pela Especificação da API HTTP do Registo V2. |
length |
Int32 | O número de bytes do conteúdo. Igual ao campo Tamanho. |
repository |
String | O nome do repositório. |
tag |
String | O nome da etiqueta de imagem. |
pedido
Elemento | Tipo | Description |
---|---|---|
id |
String | O ID do pedido que iniciou o evento. |
host |
String | O nome de anfitrião acessível externamente da instância de registo, conforme especificado pelo cabeçalho do anfitrião HTTP nos pedidos recebidos. |
method |
String | O método de pedido que gerou o evento. |
useragent |
String | O cabeçalho do agente do utilizador do pedido. |
Exemplo de payload: evento de push de imagem
{
"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\\))"
}
}
Exemplo de comando da CLI do Docker que aciona o webhook de evento push de imagem:
docker push myregistry.azurecr.io/hello-world:v1
Evento push de gráfico
O Webhook foi acionado quando um gráfico Helm é enviado para um repositório.
Payload de evento push de gráfico
Elemento | Tipo | Description |
---|---|---|
id |
String | O ID do evento do webhook. |
timestamp |
DateTime | A hora em que o evento do webhook foi acionado. |
action |
String | A ação que acionou o evento do webhook. |
destino | Tipo Complexo | O destino do evento que acionou o evento do webhook. |
destino
Elemento | Tipo | Description |
---|---|---|
mediaType |
String | O tipo mime do objeto referenciado. |
size |
Int32 | O número de bytes do conteúdo. |
digest |
String | O resumo do conteúdo, conforme definido pela Especificação da API HTTP do Registo V2. |
repository |
String | O nome do repositório. |
tag |
String | O nome da etiqueta do gráfico. |
name |
String | O nome do gráfico. |
version |
String | A versão do gráfico. |
Exemplo de payload: evento push de 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"
}
}
Exemplo do comando da CLI do Azure que aciona o webhook de eventos chart_push :
az acr helm push wordpress-5.4.0.tgz --name MyRegistry
Eliminar evento
O Webhook foi acionado quando um repositório ou manifesto de imagem é eliminado. Não acionado quando uma etiqueta é eliminada.
Eliminar payload de eventos
Elemento | Tipo | Description |
---|---|---|
id |
String | O ID do evento do webhook. |
timestamp |
DateTime | O momento em que o evento do webhook foi acionado. |
action |
String | A ação que acionou o evento do webhook. |
destino | Tipo Complexo | O destino do evento que acionou o evento do webhook. |
pedido | Tipo Complexo | O pedido que gerou o evento do webhook. |
destino
Elemento | Tipo | Description |
---|---|---|
mediaType |
String | O tipo MIME do objeto referenciado. |
digest |
String | O resumo do conteúdo, conforme definido pela Especificação da API HTTP do Registo V2. |
repository |
String | O nome do repositório. |
pedido
Elemento | Tipo | Description |
---|---|---|
id |
String | O ID do pedido que iniciou o evento. |
host |
String | O nome de anfitrião acessível externamente da instância do registo, conforme especificado pelo cabeçalho do anfitrião HTTP nos pedidos recebidos. |
method |
String | O método de pedido que gerou o evento. |
useragent |
String | O cabeçalho do agente do utilizador do pedido. |
Exemplo de payload: evento de eliminação de imagens
{
"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"
}
}
Exemplo de comandos da CLI do Azure que acionam um webhook de eventos de eliminação :
# Delete repository
az acr repository delete --name MyRegistry --repository MyRepository
# Delete image
az acr repository delete --name MyRegistry --image MyRepository:MyTag
Evento de eliminação de gráficos
O Webhook foi acionado quando um gráfico helm ou repositório é eliminado.
Payload de eventos de eliminação de gráficos
Elemento | Tipo | Description |
---|---|---|
id |
String | O ID do evento do webhook. |
timestamp |
DateTime | O momento em que o evento do webhook foi acionado. |
action |
String | A ação que acionou o evento do webhook. |
destino | Tipo Complexo | O destino do evento que acionou o evento do webhook. |
destino
Elemento | Tipo | Description |
---|---|---|
mediaType |
String | O tipo MIME do objeto referenciado. |
size |
Int32 | O número de bytes do conteúdo. |
digest |
String | O resumo do conteúdo, conforme definido pela Especificação da API HTTP do Registo V2. |
repository |
String | O nome do repositório. |
tag |
String | O nome da etiqueta do gráfico. |
name |
String | O nome do gráfico. |
version |
String | A versão do gráfico. |
Exemplo de payload: evento de eliminação de gráficos
{
"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"
}
}
Exemplo do comando da CLI do Azure que aciona o webhook do evento chart_delete :
az acr helm delete wordpress --version 5.4.0 --name MyRegistry