Referência do webhook do Azure Container Registry
Você pode configurar webhooks para seu registro de contêiner que geram eventos quando determinadas ações são executadas contra ele. Por exemplo, habilite webhooks que são acionados quando uma imagem de contêiner ou gráfico Helm é enviado por push para um registro ou excluído. Quando um webhook é acionado, o Registro de Contêiner do Azure emite uma solicitação HTTP ou HTTPS contendo informações sobre o evento para um ponto de extremidade especificado. Seu endpoint pode então processar o webhook e agir de acordo.
As seções a seguir detalham o esquema de solicitações de webhook geradas por eventos suportados. As seções de evento contêm o esquema de carga útil para o tipo de evento, uma carga útil de solicitação de exemplo e um ou mais comandos de exemplo que acionariam o webhook.
Para obter informações sobre como configurar webhooks para seu registro de contêiner do Azure, consulte Usando webhooks do Registro de Contêiner do Azure.
Solicitações de Webhook
Pedido HTTP
Um webhook acionado faz uma solicitação HTTP POST
para o ponto de extremidade de URL que você especificou quando configurou o webhook.
Cabeçalhos de HTTP
As solicitações de Webhook incluem um Content-Type
de application/json
se você não especificou um Content-Type
cabeçalho personalizado para seu webhook.
Nenhum outro cabeçalho é adicionado à solicitação além dos cabeçalhos personalizados que você pode ter especificado para o webhook.
Evento Push
Webhook acionado quando uma imagem de contêiner é enviada por push para um repositório.
Carga útil do evento push
Elemento | Tipo | Description |
---|---|---|
id |
String | A ID do evento webhook. |
timestamp |
DateTime | A hora em que o evento webhook foi acionado. |
action |
String | A ação que acionou o evento webhook. |
público-alvo | Tipo Complexo | O destino do evento que disparou o evento webhook. |
solicitar | Tipo Complexo | A solicitação que gerou o evento webhook. |
destino
Elemento | Tipo | Description |
---|---|---|
mediaType |
String | O tipo MIME do objeto referenciado. |
size |
Int32 | O número de bytes do conteúdo. O mesmo que o campo Comprimento. |
digest |
String | O resumo do conteúdo, conforme definido pela especificação da API HTTP do Registro V2. |
length |
Int32 | O número de bytes do conteúdo. O mesmo que o campo Tamanho. |
repository |
String | O nome do repositório. |
tag |
String | O nome da tag de imagem. |
pedido
Elemento | Tipo | Description |
---|---|---|
id |
String | A ID da solicitação que iniciou o evento. |
host |
String | O nome de host acessível externamente da instância do Registro, conforme especificado pelo cabeçalho de host HTTP em solicitações de entrada. |
method |
String | O método de solicitação que gerou o evento. |
useragent |
String | O cabeçalho do agente do usuário da solicitação. |
Exemplo de carga útil: evento de envio 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 do evento de envio de imagem:
docker push myregistry.azurecr.io/hello-world:v1
Evento de envio de gráfico
Webhook acionado quando um gráfico Helm é enviado por push para um repositório.
Carga útil do evento push do gráfico
Elemento | Tipo | Description |
---|---|---|
id |
String | A ID do evento webhook. |
timestamp |
DateTime | A hora em que o evento webhook foi acionado. |
action |
String | A ação que acionou o evento webhook. |
público-alvo | Tipo Complexo | O destino do evento que disparou o evento 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 Registro V2. |
repository |
String | O nome do repositório. |
tag |
String | O nome da tag do gráfico. |
name |
String | O nome do gráfico. |
version |
String | A versão do gráfico. |
Exemplo de carga útil: evento de 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 de comando da CLI do Azure que aciona o webhook do evento chart_push :
az acr helm push wordpress-5.4.0.tgz --name MyRegistry
Excluir evento
Webhook acionado quando um repositório de imagens ou manifesto é excluído. Não acionado quando uma tag é excluída.
Excluir carga útil do evento
Elemento | Tipo | Description |
---|---|---|
id |
String | A ID do evento webhook. |
timestamp |
DateTime | A hora em que o evento webhook foi acionado. |
action |
String | A ação que acionou o evento webhook. |
público-alvo | Tipo Complexo | O destino do evento que disparou o evento webhook. |
solicitar | Tipo Complexo | A solicitação que gerou o evento 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 Registro V2. |
repository |
String | O nome do repositório. |
pedido
Elemento | Tipo | Description |
---|---|---|
id |
String | A ID da solicitação que iniciou o evento. |
host |
String | O nome de host acessível externamente da instância do Registro, conforme especificado pelo cabeçalho de host HTTP em solicitações de entrada. |
method |
String | O método de solicitação que gerou o evento. |
useragent |
String | O cabeçalho do agente do usuário da solicitação. |
Exemplo de carga útil: evento de exclusão de imagem
{
"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 evento de exclusão :
# Delete repository
az acr repository delete --name MyRegistry --repository MyRepository
# Delete image
az acr repository delete --name MyRegistry --image MyRepository:MyTag
Evento de exclusão de gráfico
Webhook acionado quando um gráfico ou repositório Helm é excluído.
Exclusão de gráfico de carga útil do evento
Elemento | Tipo | Description |
---|---|---|
id |
String | A ID do evento webhook. |
timestamp |
DateTime | A hora em que o evento webhook foi acionado. |
action |
String | A ação que acionou o evento webhook. |
público-alvo | Tipo Complexo | O destino do evento que disparou o evento 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 Registro V2. |
repository |
String | O nome do repositório. |
tag |
String | O nome da tag do gráfico. |
name |
String | O nome do gráfico. |
version |
String | A versão do gráfico. |
Exemplo de carga útil: evento de exclusão 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"
}
}
Exemplo de comando da CLI do Azure que aciona o webhook do evento chart_delete :
az acr helm delete wordpress --version 5.4.0 --name MyRegistry