Partilhar via


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

Próximos passos

Utilizar webhooks do Azure Container Registry