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 webhook attivati quando viene eseguito il push di un'immagine del contenitore o di un grafico Helm in un registro 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.

Se l'endpoint richiede credenziali, inviarlo solo nell'intestazione Authorization personalizzata. Non includere credenziali nell'URL o in altre intestazioni personalizzate. Per altre informazioni, vedere Proteggere le credenziali del 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 Stringa ID dell'evento del webhook.
timestamp Data/Ora Ora in cui è stato attivato l'evento del webhook.
action Stringa 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 Stringa Tipo MIME dell'oggetto di riferimento.
size Int32 Numero di byte del contenuto. Uguale al campo Length.
digest Stringa Digest del contenuto, definito dalla specifica API HTTP del registro contenitori V2.
length Int32 Numero di byte del contenuto. Uguale al campo Size.
repository Stringa Nome del repository.
tag Stringa Nome del tag dell'immagine.

request

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

Esempio di payload: evento push immagine

{
  "id": "cb8c3971-9adc-488b-xxxx-43cbb4974ff5",
  "timestamp": "2023-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 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 grafico

Elemento Tipo Descrizione
id Stringa ID dell'evento del webhook.
timestamp Data/Ora Ora in cui è stato attivato l'evento del webhook.
action Stringa 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 Stringa Tipo MIME dell'oggetto di riferimento.
size Int32 Numero di byte del contenuto.
digest Stringa Digest del contenuto, definito dalla specifica API HTTP del registro contenitori V2.
repository Stringa Nome del repository.
tag Stringa Nome del tag del grafico.
name Stringa Nome del grafico.
version Stringa Versione del grafico.

Esempio di payload: evento push grafico

{
  "id": "6356e9e0-627f-4fed-xxxx-d9059b5143ac",
  "timestamp": "2023-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

Elimina 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 Stringa ID dell'evento del webhook.
timestamp Data/Ora Ora in cui è stato attivato l'evento del webhook.
action Stringa 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 Stringa Tipo MIME dell'oggetto di riferimento.
digest Stringa Digest del contenuto, definito dalla specifica API HTTP del registro contenitori V2.
repository Stringa Nome del repository.

request

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

Esempio di payload: evento image delete

{
    "id": "afc359ce-df7f-4e32-xxxx-1ff8aa80927b",
    "timestamp": "2023-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 Helm o un repository.

Payload dell'evento di eliminazione del grafico

Elemento Tipo Descrizione
id Stringa ID dell'evento del webhook.
timestamp Data/Ora Ora in cui è stato attivato l'evento del webhook.
action Stringa 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 Stringa Tipo MIME dell'oggetto di riferimento.
size Int32 Numero di byte del contenuto.
digest Stringa Digest del contenuto, definito dalla specifica API HTTP del registro contenitori V2.
repository Stringa Nome del repository.
tag Stringa Nome del tag del grafico.
name Stringa Nome del grafico.
version Stringa Versione del grafico.

Esempio di payload: evento di eliminazione del grafico

{
  "id": "338a3ef7-ad68-4128-xxxx-fdd3af8e8f67",
  "timestamp": "2023-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