Azure Container Registry como origen de Event Grid

En este artículo se proporcionan las propiedades y los esquemas de los eventos de Container Registry. Para una introducción a los esquemas de eventos, consulte Esquema de eventos de Azure Event Grid.

Tipos de eventos disponibles

Azure Container Registry emite los siguientes tipos de evento:

Tipo de evento Descripción
Microsoft.ContainerRegistry.ImagePushed Se genera cuando se inserta una imagen.
Microsoft.ContainerRegistry.ImageDeleted Se genera cuando se elimina una imagen.
Microsoft.ContainerRegistry.ChartPushed Se genera cuando se inserta un gráfico Helm.
Microsoft.ContainerRegistry.ChartDeleted Se genera cuando se elimina un gráfico Helm.

Evento de ejemplo

En el ejemplo siguiente, se muestra el esquema de un evento de inserción de una imagen:

[{
  "id": "831e1650-001e-001b-66ab-eeb76e069631",
  "source": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ContainerRegistry/registries/<name>",
  "subject": "aci-helloworld:v1",
  "type": "Microsoft.ContainerRegistry.ImagePushed",
  "time": "2018-04-25T21:39:47.6549614Z",
  "data": {
    "id": "31c51664-e5bd-416a-a5df-e5206bc47ed0",
    "timestamp": "2018-04-25T21:39:47.276585742Z",
    "action": "push",
    "target": {
      "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
      "size": 3023,
      "digest": "sha256:213bbc182920ab41e18edc2001e06abcca6735d87782d9cef68abd83941cf0e5",
      "length": 3023,
      "repository": "aci-helloworld",
      "tag": "v1"
    },
    "request": {
      "id": "7c66f28b-de19-40a4-821c-6f5f6c0003a4",
      "host": "demo.azurecr.io",
      "method": "PUT",
      "useragent": "docker/18.03.0-ce go/go1.9.4 git-commit/0520e24 os/windows arch/amd64 UpstreamClient(Docker-Client/18.03.0-ce \\\\(windows\\\\))"
    }
  },
  "specversion": "1.0"
}]

El esquema para un evento de eliminación de una imagen es similar:

[{
  "id": "f06e3921-301f-42ec-b368-212f7d5354bd",
  "source": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ContainerRegistry/registries/<name>",
  "subject": "aci-helloworld",
  "type": "Microsoft.ContainerRegistry.ImageDeleted",
  "time": "2018-04-26T17:56:01.8211268Z",
  "data": {
    "id": "f06e3921-301f-42ec-b368-212f7d5354bd",
    "timestamp": "2018-04-26T17:56:00.996603117Z",
    "action": "delete",
    "target": {
      "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
      "digest": "sha256:213bbc182920ab41e18edc2001e06abcca6735d87782d9cef68abd83941cf0e5",
      "repository": "aci-helloworld"
    },
    "request": {
      "id": "aeda5b99-4197-409f-b8a8-ff539edb7de2",
      "host": "demo.azurecr.io",
      "method": "DELETE",
      "useragent": "python-requests/2.18.4"
    }
  },
  "specversion": "1.0"
}]

El esquema para un evento que se inserta en un gráfico es similar al esquema de un evento con imágenes insertadas, pero no incluye un objeto de solicitud:

[{
  "id": "ea3a9c28-5b17-40f6-a500-3f02b6829277",
  "source": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ContainerRegistry/registries/<name>",
  "subject": "mychart:1.0.0",
  "type": "Microsoft.ContainerRegistry.ChartPushed",
  "time": "2019-03-12T22:16:31.5164086Z",
  "data": {
    "id":"ea3a9c28-5b17-40f6-a500-3f02b682927",
    "timestamp":"2019-03-12T22:16:31.0087496+00:00",
    "action":"chart_push",
    "target":{
      "mediaType":"application/vnd.acr.helm.chart",
      "size":25265,
      "digest":"sha256:7f060075264b5ba7c14c23672698152ae6a3ebac1c47916e4efe19cd624d5fab",
      "repository":"repo",
      "tag":"mychart-1.0.0.tgz",
      "name":"mychart",
      "version":"1.0.0"
    }
  },
  "specversion": "1.0"
}]

El esquema para un evento que se elimina de un gráfico es similar al esquema de un evento con imágenes eliminadas, pero no incluye un objeto de solicitud:

[{
  "id": "39136b3a-1a7e-416f-a09e-5c85d5402fca",
  "source": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ContainerRegistry/registries/<name>",
  "subject": "mychart:1.0.0",
  "type": "Microsoft.ContainerRegistry.ChartDeleted",
  "time": "019-03-12T22:42:08.7034064Z",
  "data": {
    "id":"ea3a9c28-5b17-40f6-a500-3f02b682927",
    "timestamp":"2019-03-12T22:42:08.3783775+00:00",
    "action":"chart_delete",
    "target":{
      "mediaType":"application/vnd.acr.helm.chart",
      "size":25265,
      "digest":"sha256:7f060075264b5ba7c14c23672698152ae6a3ebac1c47916e4efe19cd624d5fab",
      "repository":"repo",
      "tag":"mychart-1.0.0.tgz",
      "name":"mychart",
      "version":"1.0.0"
    }
  },
  "specversion": "1.0"
}]

Propiedades de evento

Un evento tiene los siguientes datos de nivel superior:

Propiedad Tipo Description
source string Ruta de acceso completa a los recursos del origen del evento. En este campo no se puede escribir. Event Grid proporciona este valor.
subject string Ruta al asunto del evento definida por el anunciante.
type string Uno de los tipos de eventos registrados para este origen de eventos.
time string La hora de generación del evento en función de la hora UTC del proveedor.
id string Identificador único para el evento
data object Datos de eventos de Blob Storage.
specversion string Versión de especificación del esquema CloudEvents.

El objeto data tiene las siguientes propiedades:

Propiedad Tipo Description
id string El identificador de evento.
timestamp string Hora en que se produjo el evento.
action string La acción que abarca el evento proporcionado.
target object El destino del evento.
request object La solicitud que generó el evento.

El objeto target tiene las siguientes propiedades:

Propiedad Tipo Description
mediaType string El tipo MIME del objeto al que se hace referencia.
size integer El número de bytes del contenido. Igual que el campo de longitud.
digest string El resumen del contenido, de acuerdo con la especificación de API HTTP V2 del registro.
length integer El número de bytes del contenido. Igual que el campo de tamaño.
repository string El nombre del repositorio.
tag string El nombre de la etiqueta.
name string El nombre del gráfico.
version string La versión del gráfico.

El objeto request tiene las siguientes propiedades:

Propiedad Tipo Description
id string El identificador de la solicitud que inició el evento.
addr string La dirección IP o nombre de host y, posiblemente, el puerto de la conexión de cliente que inició el evento. Este valor es RemoteAddr de la solicitud http estándar.
host string El nombre de host accesible desde el exterior de la instancia del registro, según lo especificado por el encabezado de host http en las solicitudes entrantes.
method string El método de la solicitud que generó el evento.
useragent string El encabezado de agente de usuario de la solicitud.

El objeto de connectedRegistry tiene las siguientes propiedades:

Propiedad Tipo Description
name string Nombre del registro conectado que generó este evento.

Tutoriales y procedimientos

Título Descripción
Guía de inicio rápido: Envío de eventos de Container Registry Explica cómo utilizar la CLI de Azure para enviar eventos de Container Registry.

Pasos siguientes