Partager via


Référence de webhook Azure Container Registry

Vous pouvez configurer des webhooks pour votre registre de conteneurs qui génèrent des événements lorsque certaines actions sont effectuées. Par exemple, activer des webhooks qui sont déclenchés quand une image conteneur ou un graphique Helm est envoyé vers un Registre, ou supprimé. Lorsqu’un webhook est déclenché, Azure Container Registry envoie une requête HTTP ou HTTPS contenant des informations sur l’événement à un point de terminaison que vous spécifiez. Votre point de terminaison peut ensuite traiter le webhook et agir en conséquence.

Les sections suivantes détaillent le schéma de requêtes de webhook générées par des événements pris en charge. Les sections de l’événement contient le schéma de charge utile pour le type d’événement, une charge utile de requête par exemple, et un ou plusieurs exemples de commandes qui peuvent déclencher le webhook.

Pour plus d’informations sur la configuration des webhooks pour votre registre de conteneurs Azure, consultez Utilisation de webhooks Azure Container Registry.

Requêtes de webhook

Demande HTTP

Un webhook déclenché envoie une requête POST HTTP au point de terminaison d’URL que vous avez spécifié lorsque vous avez configuré le webhook.

En-têtes HTTP

Les requêtes de webhook incluent un Content-Type de application/json si vous n’avez pas spécifié un en-tête personnalisé Content-Type pour votre webhook.

Aucun en-tête, autre que ces en-têtes personnalisés que vous pouvez avoir spécifiés pour le webhook, n’est ajouté à la requête.

Événement push

Webhook déclenché lorsqu’une image conteneur est envoyée vers un référentiel.

Charge utile d’événement push

Élément Type Description
id String ID de l’événement de webhook.
timestamp DateTime Heure à laquelle l’événement de webhook a été déclenché.
action String Action qui a déclenché l’événement de webhook.
cible Type complexe Cible de l’événement qui a déclenché l’événement de webhook.
requête Type complexe Requête qui a généré l’événement de webhook.

target

Élément Type Description
mediaType String Type MIME de l’objet référencé.
size Int32 Nombre d’octets du contenu. Identique au champ Longueur.
digest String Résumé du contenu, tel que défini par la spécification d’API du Registre V2 HTTP.
length Int32 Nombre d’octets du contenu. Identique au champ Taille.
repository String Nom du référentiel.
tag String Nom de la balise d’image.

request

Élément Type Description
id String ID de la requête qui a initié l’événement.
host String Nom d’hôte accessible de l’extérieur de l’instance du registre, tel que spécifié par l’en-tête d’hôte HTTP sur les requêtes entrantes.
method String Méthode de requête qui a généré l’événement.
useragent String En-tête d’agent utilisateur de la requête.

Exemple de charge utile : événement push d’image

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

Exemple de commande Docker CLI qui déclenche le webhook d’événement push d’image :

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

Événement push de graphique

Webhook déclenché quand un graphique Helm est envoyé vers un référentiel.

Charge utile d’événement push de graphique

Élément Type Description
id String ID de l’événement de webhook.
timestamp DateTime Heure à laquelle l’événement de webhook a été déclenché.
action String Action qui a déclenché l’événement de webhook.
cible Type complexe Cible de l’événement qui a déclenché l’événement de webhook.

target

Élément Type Description
mediaType String Type MIME de l’objet référencé.
size Int32 Nombre d’octets du contenu.
digest String Résumé du contenu, tel que défini par la spécification d’API du Registre V2 HTTP.
repository String Nom du référentiel.
tag String Nom de balise du graphique.
name String Nom du chart.
version String Version du chart.

Exemple de charge utile : événement push de graphique

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

Exemple de commande Azure CLI qui déclenche le webhook d’événement chart_push :

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

Supprimer un événement

Webhook déclenché quand un référentiel d’image sou un manifeste est supprimé. Non déclenché lorsqu’une balise est supprimée.

Charge utile d’événement de suppression

Élément Type Description
id String ID de l’événement de webhook.
timestamp DateTime Heure à laquelle l’événement de webhook a été déclenché.
action String Action qui a déclenché l’événement de webhook.
cible Type complexe Cible de l’événement qui a déclenché l’événement de webhook.
requête Type complexe Requête qui a généré l’événement de webhook.

target

Élément Type Description
mediaType String Type MIME de l’objet référencé.
digest String Résumé du contenu, tel que défini par la spécification d’API du Registre V2 HTTP.
repository String Nom du référentiel.

request

Élément Type Description
id String ID de la requête qui a initié l’événement.
host String Nom d’hôte accessible de l’extérieur de l’instance du registre, tel que spécifié par l’en-tête d’hôte HTTP sur les requêtes entrantes.
method String Méthode de requête qui a généré l’événement.
useragent String En-tête d’agent utilisateur de la requête.

Exemple de charge utile : événement de suppression d’image

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

Exemples de commandes Azure CLI qui déclenchent un webhook d’événement supprimer :

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

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

Événement de suppression de graphique

Webhook déclenché quand un graphique Helm ou un référentiel est supprimé.

Charge utile d’événement de suppression de graphique

Élément Type Description
id String ID de l’événement de webhook.
timestamp DateTime Heure à laquelle l’événement de webhook a été déclenché.
action String Action qui a déclenché l’événement de webhook.
cible Type complexe Cible de l’événement qui a déclenché l’événement de webhook.

target

Élément Type Description
mediaType String Type MIME de l’objet référencé.
size Int32 Nombre d’octets du contenu.
digest String Résumé du contenu, tel que défini par la spécification d’API du Registre V2 HTTP.
repository String Nom du référentiel.
tag String Nom de balise du graphique.
name String Nom du chart.
version String Version du chart.

Exemple de charge utile : événement de suppression de graphique

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

Exemple de commande Azure CLI qui déclenche le webhook d’événement chart_delete :

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

Étapes suivantes

Utilisation de webhooks Azure Container Registry