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

Próximas etapas

Como usar webhooks do Registro de Contêiner do Azure