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

Passos seguintes

Utilizar webhooks Azure Container Registry