Registro de Contêiner do Azure como uma fonte de Grade de Eventos

Este artigo fornece as propriedades e o esquema para eventos do Registro de Contêiner. Para obter uma introdução aos esquemas de eventos, consulte Esquema de eventos da Grade de Eventos do Azure.

Tipos de eventos disponíveis

O Azure Container Registry emite os seguintes tipos de evento:

Tipo de evento Description
Microsoft.ContainerRegistry.ImagePush Gerado quando uma imagem é enviada.
Microsoft.ContainerRegistry.ImageDeleted Gerado quando uma imagem é excluída.
Microsoft.ContainerRegistry.ChartPush Elevado quando um gráfico Helm é empurrado.
Microsoft.ContainerRegistry.ChartDeleted Gerado quando um gráfico Helm é excluído.

Exemplo de evento

O exemplo a seguir mostra o esquema de um evento push de imagem:

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

O esquema para um evento de imagem excluída é semelhante:

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

O esquema para um evento push de gráfico é semelhante ao esquema para um evento push com imagem, mas não inclui um objeto de solicitação:

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

O esquema de um evento excluído de gráfico é semelhante ao esquema de um evento excluído com imagem, mas não inclui um objeto de solicitação:

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

Propriedades do evento

Um evento tem os seguintes dados de nível superior:

Propriedade Type Description
source string Caminho completo do recurso para a origem do evento. Este campo não pode ser gravado. O Event Grid fornece este valor.
subject string Caminho definido pelo publicador para o assunto do evento.
type string Um dos tipos de eventos registados para esta origem de evento.
time string A hora em que o evento é gerado com base na hora UTC do provedor.
id string Identificador exclusivo do evento.
data objeto Dados de eventos de armazenamento de Blob.
specversion string Versão da especificação do esquema CloudEvents.

O objeto de dados tem as seguintes propriedades:

Propriedade Type Description
id string A ID do evento.
timestamp string A hora em que o evento ocorreu.
action string A ação que engloba o evento previsto.
target objeto O alvo do evento.
request objeto A solicitação que gerou o evento.

O objeto de destino tem as seguintes propriedades:

Propriedade Type Description
mediaType string O tipo MIME do objeto referenciado.
size integer 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 integer 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.
name string O nome do gráfico.
version string A versão do gráfico.

O objeto request tem as seguintes propriedades:

Propriedade Type Description
id string A ID da solicitação que iniciou o evento.
addr string O IP ou nome de host e, possivelmente, a porta da conexão do cliente que iniciou o evento. Esse valor é o RemoteAddr da solicitação http padrão.
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.

O objeto connectedRegistry tem as seguintes propriedades:

Propriedade Type Description
name string O nome do registro conectado que gerou esse evento.

Tutorials and how-tos (Tutoriais e procedimentos)

Title Description
Guia de início rápido: enviar eventos do Registro de contêiner Mostra como usar a CLI do Azure para enviar eventos do Registro de Contêiner.

Próximos passos

  • Para obter uma introdução à Grade de Eventos do Azure, consulte O que é a Grade de Eventos?
  • Para obter mais informações sobre como criar uma assinatura da Grade de Eventos do Azure, consulte Esquema de assinatura da Grade de Eventos.