Referência de webhook do Registro de Contêiner do Azure
Você pode configurar webhooks para o registro de contêiner que geram eventos quando certas ações são executadas em relação a ela. Por exemplo, habilite webhooks que são disparados quando uma imagem de contêiner ou gráfico do Helm é enviado por push para um registro ou excluído. Quando um webhook é disparado, o Registro de Contêiner do Azure emite uma solicitação HTTPS ou HTTP contendo informações sobre o evento para um ponto de extremidade que você especificou. Seu ponto de extremidade pode então processar o webhook e agir em conformidade.
As seções a seguir detalham o esquema das solicitações de webhook geradas por eventos com suporte. As seções de evento contêm o esquema de carga para o tipo de evento, um exemplo de carga de solicitação e um ou mais exemplos de comandos que disparam o webhook.
Para obter informações sobre a configuração de webhooks para o seu registro de contêiner do Azure, consulte Usando Webhooks do Registro de Contêiner do Azure.
Solicitações de webhook
Solicitação HTTP
Um webhook disparado faz uma solicitação HTTP POST
para o ponto de extremidade da URL que você especificou quando configurou o webhook.
Cabeçalhos HTTP
As solicitações de webhook incluem um Content-Type
de application/json
se você não especificou um cabeçalho personalizado Content-Type
para o seu webhook.
Nenhum outro cabeçalho é adicionado à solicitação além dos cabeçalhos personalizados que podem ter sido especificado para o webhook.
Enviar evento por push
Webhook disparado quando uma imagem de contêiner é enviada por push para um repositório.
Enviar carga do evento por push
Elemento | Type | Descrição |
---|---|---|
id |
String | A ID do evento do webhook. |
timestamp |
Datetime | A hora em que o evento do webhook foi disparado. |
action |
String | A ação que disparou o evento do webhook. |
destino | Tipo complexo | O destino do evento que desencadeou o evento do webhook. |
solicitação | Tipo complexo | A solicitação que gerou o evento do webhook. |
destino
Elemento | Type | Descrição |
---|---|---|
mediaType |
String | O tipo MIME do objeto referenciado. |
size |
Int32 | O número de bytes do conteúdo. Mesmo que o campo de Comprimento. |
digest |
String | O resumo da mensagem, conforme definido pela Especificação API HTTP do Registry V2. |
length |
Int32 | O número de bytes do conteúdo. O mesmo que o campo Tamanho. |
repository |
String | Nome do repositório. |
tag |
String | O nome da marca de imagem. |
solicitação
Elemento | Type | Descrição |
---|---|---|
id |
String | A ID da solicitação que iniciou o evento. |
host |
String | O nome de host acessível externamente da instância de registro, conforme especificado pelo cabeçalho do 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 de usuário da solicitação. |
Exemplo de carga: evento de push da 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 do comando CLI do Docker que dispara o webhook do evento push da imagem:
docker push myregistry.azurecr.io/hello-world:v1
Evento de push do gráfico
Webhook disparado quando um gráfico do Helm é enviado por push para um repositório.
Carga do evento de push do gráfico
Elemento | Type | Descrição |
---|---|---|
id |
String | A ID do evento do webhook. |
timestamp |
Datetime | A hora em que o evento do webhook foi disparado. |
action |
String | A ação que disparou o evento do webhook. |
destino | Tipo complexo | O destino do evento que desencadeou o evento do webhook. |
destino
Elemento | Type | Descrição |
---|---|---|
mediaType |
String | O tipo MIME do objeto referenciado. |
size |
Int32 | O número de bytes do conteúdo. |
digest |
String | O resumo da mensagem, conforme definido pela Especificação API HTTP do Registry V2. |
repository |
String | Nome do repositório. |
tag |
String | O nome da marca do gráfico. |
name |
String | O nome do gráfico. |
version |
String | A versão do gráfico. |
Exemplo de carga: evento de push do 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 CLI do Azure que dispara o webhook do evento chart_push:
az acr helm push wordpress-5.4.0.tgz --name MyRegistry
Excluir evento
Webhook é disparado quando um repositório ou manifesto é excluído. Não é disparado quando uma marca é excluída.
Excluir carga do evento
Elemento | Type | Descrição |
---|---|---|
id |
String | A ID do evento do webhook. |
timestamp |
Datetime | A hora em que o evento do webhook foi disparado. |
action |
String | A ação que disparou o evento do webhook. |
destino | Tipo complexo | O destino do evento que desencadeou o evento do webhook. |
solicitação | Tipo complexo | A solicitação que gerou o evento do webhook. |
destino
Elemento | Type | Descrição |
---|---|---|
mediaType |
String | O tipo MIME do objeto referenciado. |
digest |
String | O resumo da mensagem, conforme definido pela Especificação API HTTP do Registry V2. |
repository |
String | Nome do repositório. |
solicitação
Elemento | Type | Descrição |
---|---|---|
id |
String | A ID da solicitação que iniciou o evento. |
host |
String | O nome de host acessível externamente da instância de registro, conforme especificado pelo cabeçalho do 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 de usuário da solicitação. |
Exemplo de carga: evento de exclusão da 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 disparam um webhook do evento excluir:
# 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 do gráfico
Webhook disparado quando um gráfico do Helm ou repositório é excluído.
Carga do evento de exclusão do gráfico
Elemento | Type | Descrição |
---|---|---|
id |
String | A ID do evento do webhook. |
timestamp |
Datetime | A hora em que o evento do webhook foi disparado. |
action |
String | A ação que disparou o evento do webhook. |
destino | Tipo complexo | O destino do evento que desencadeou o evento do webhook. |
destino
Elemento | Type | Descrição |
---|---|---|
mediaType |
String | O tipo MIME do objeto referenciado. |
size |
Int32 | O número de bytes do conteúdo. |
digest |
String | O resumo da mensagem, conforme definido pela Especificação API HTTP do Registry V2. |
repository |
String | Nome do repositório. |
tag |
String | O nome da marca do gráfico. |
name |
String | O nome do gráfico. |
version |
String | A versão do gráfico. |
Exemplo de carga: evento de exclusão do 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 do comando CLI do Azure que dispara o webhook do evento chart_delete:
az acr helm delete wordpress --version 5.4.0 --name MyRegistry