Informazioni di riferimento sui webhook per Registro Azure Container

È possibile configurare webhook per il registro contenitori, che generano eventi quando vengono eseguite determinate azioni nel registro. Ad esempio, abilitare i webhook attivati quando un'immagine del contenitore o un grafico Helm viene eseguito il push in un Registro di sistema o eliminato. Quando un webhook viene attivato, Registro Azure Container invia una richiesta HTTP o HTTPS contenente informazioni sull'evento a un endpoint specificato. L'endpoint può quindi elaborare il webhook e agire di conseguenza.

Le sezioni seguenti illustrano in dettaglio lo schema delle richieste dei webhook generate da eventi supportati. Le sezioni sugli eventi contengono lo schema del payload per il tipo di evento, un payload della richiesta di esempio e uno o più comandi di esempio che attiverebbero il webhook.

Per informazioni sulla configurazione di webhook per Registro Azure Container, vedere Uso dei webhook di Registro Azure Container.

Richieste dei webhook

Richiesta HTTP

Un webhook attivato crea una richiesta HTTP POST per l'endpoint dell'URL specificato quando si è configurato il webhook.

Intestazioni HTTP

Le richieste dei webhook includono un'intestazione Content-Type di tipo application/json se non è stata specificata un'intestazione personalizzata Content-Type per il webhook.

Non vengono aggiunte alla richiesta altre intestazioni oltre a quelle personalizzate eventualmente specificate per il webhook.

Evento push

Webhook attivato quando viene eseguito il push di un'immagine del contenitore in un repository.

Payload dell'evento push

Elemento Tipo Descrizione
id string ID dell'evento del webhook.
timestamp Datetime Ora in cui è stato attivato l'evento del webhook.
action string Azione che ha attivato l'evento webhook.
target Tipo complesso Destinazione dell'evento che ha attivato l'evento del webhook.
request Tipo complesso Richiesta che ha generato l'evento del webhook.

target

Elemento Tipo Descrizione
mediaType string Tipo MIME dell'oggetto di riferimento.
size Int32 Numero di byte del contenuto. Uguale al campo Length.
digest string Digest del contenuto, definito dalla specifica API HTTP del registro contenitori V2.
length Int32 Numero di byte del contenuto. Uguale al campo Size.
repository string Nome del repository.
tag string Nome del tag dell'immagine.

richiesta

Elemento Tipo Descrizione
id string ID della richiesta che ha avviato l'evento.
host string Nome host accessibile esternamente dell'istanza del registro, specificato dall'intestazione host HTTP nelle richieste in ingresso.
method string Metodo di richiesta che ha generato l'evento.
useragent string Intestazione agente utente della richiesta.

Esempio di payload: evento push di immagini

{
  "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\\))"
  }
}

Comando dell'interfaccia della riga di comando Docker di esempio che attiva il webhook dell'evento push dell'immagine:

docker push myregistry.azurecr.io/hello-world:v1

Evento push grafico

Webhook attivato quando viene eseguito il push di un grafico Helm in un repository.

Payload dell'evento push del grafico

Elemento Tipo Descrizione
id string ID dell'evento del webhook.
timestamp Datetime Ora in cui è stato attivato l'evento del webhook.
action string Azione che ha attivato l'evento webhook.
target Tipo complesso Destinazione dell'evento che ha attivato l'evento del webhook.

target

Elemento Tipo Descrizione
mediaType string Tipo MIME dell'oggetto di riferimento.
size Int32 Numero di byte del contenuto.
digest string Digest del contenuto, definito dalla specifica API HTTP del registro contenitori V2.
repository string Nome del repository.
tag string Nome del tag del grafico.
name string Nome del grafico.
version string Versione del grafico.

Esempio di payload: evento push del grafico

{
  "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"
  }
}

Comando dell'interfaccia della riga di comando di Azure di esempio che attiva il webhook dell'evento chart_push :

az acr helm push wordpress-5.4.0.tgz --name MyRegistry

Eliminare un evento

Webhook attivato quando viene eliminato un repository di immagini o un manifesto. Non attivato quando viene eliminato un tag.

Payload dell'evento delete

Elemento Tipo Descrizione
id string ID dell'evento del webhook.
timestamp Datetime Ora in cui è stato attivato l'evento del webhook.
action string Azione che ha attivato l'evento webhook.
target Tipo complesso Destinazione dell'evento che ha attivato l'evento del webhook.
request Tipo complesso Richiesta che ha generato l'evento del webhook.

target

Elemento Tipo Descrizione
mediaType string Tipo MIME dell'oggetto di riferimento.
digest string Digest del contenuto, definito dalla specifica API HTTP del registro contenitori V2.
repository string Nome del repository.

richiesta

Elemento Tipo Descrizione
id string ID della richiesta che ha avviato l'evento.
host string Nome host accessibile esternamente dell'istanza del registro, specificato dall'intestazione host HTTP nelle richieste in ingresso.
method string Metodo di richiesta che ha generato l'evento.
useragent string Intestazione agente utente della richiesta.

Esempio di payload: evento di eliminazione dell'immagine

{
    "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"
    }
  }

Comandi dell'interfaccia della riga di comando di Azure di esempio che attivano il webhook di un evento delete:

# Delete repository
az acr repository delete --name MyRegistry --repository MyRepository

# Delete image
az acr repository delete --name MyRegistry --image MyRepository:MyTag

Evento di eliminazione del grafico

Webhook attivato quando viene eliminato un grafico o un repository Helm.

Payload dell'evento di eliminazione del grafico

Elemento Tipo Descrizione
id string ID dell'evento del webhook.
timestamp Datetime Ora in cui è stato attivato l'evento del webhook.
action string Azione che ha attivato l'evento webhook.
target Tipo complesso Destinazione dell'evento che ha attivato l'evento del webhook.

target

Elemento Tipo Descrizione
mediaType string Tipo MIME dell'oggetto di riferimento.
size Int32 Numero di byte del contenuto.
digest string Digest del contenuto, definito dalla specifica API HTTP del registro contenitori V2.
repository string Nome del repository.
tag string Nome del tag del grafico.
name string Nome del grafico.
version string Versione del grafico.

Esempio di payload: evento di eliminazione del grafico

{
  "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"
  }
}

Comando dell'interfaccia della riga di comando di Azure di esempio che attiva il webhook dell'evento chart_delete :

az acr helm delete wordpress --version 5.4.0 --name MyRegistry

Passaggi successivi

Uso dei webhook di Registro Azure Container