Pode receber notificações do Pub/Sub para as alterações a um repositório do Docker. As notificações aplicam-se a qualquer imagem de contentor armazenada no repositório, incluindo gráficos do Helm 3 em formato OCI.
O Pub/Sub publica mensagens sobre os seus repositórios em recursos denominados tópicos. As aplicações que subscrevem tópicos do Pub/Sub recebem estas mensagens e notificações quando o estado de um repositório muda.
O Artifact Registry publica mensagens para as seguintes alterações:
- Carregamentos de imagens
- Novas etiquetas adicionadas a imagens
- Eliminação de imagens
Além disso, pode configurar funções e autorizações para publicar ou subscrever notificações.
Vista geral
O Artifact Registry publica mensagens sobre alterações aos repositórios num tópico denominado gcr
.
Para receber notificações, tem de:
- Cria um tópico com o nome
gcr
no projeto com o Artifact Registry. - Crie uma subscrição para o tópico.
- Configure a sua aplicação subscritora para receber mensagens sobre alterações ao repositório.
- Se for adequado, configure as autorizações para controlar o acesso ao seu tópico e subscrição.
Criar o tópico do Artifact Registry
Para criar o tópico gcr
com chaves de encriptação da Google, geridas e pertencentes à Google,
Consola
Aceda à página de tópicos do Pub/Sub na Trusted Cloud consola.
Clique em Criar tópico.
Introduza o ID do tópico
gcr
.Clique em Criar tópico.
gcloud
Execute o seguinte comando:
gcloud pubsub topics create gcr --project=PROJECT-ID
Substitua PROJECT-ID pelo seu Trusted Cloud by S3NS
ID do projeto. Se omitir a flag --project
, o comando usa o projeto atual.
Para saber mais sobre o comando gcloud pubsub topics
, consulte a
topics
documentação.
Para criar o tópico gcr
com encriptação CMEK, consulte as
instruções para encriptar tópicos do Pub/Sub.
Depois de criar o tópico gcr
ou verificar que existe, pode
criar uma subscrição do tópico.
Criar uma subscrição
Depois de criar um tópico para alterações ao repositório, pode configurar uma subscrição para o mesmo que use a entrega push ou a entrega pull. Recomendamos a utilização da entrega por obtenção, uma vez que os sistemas de CI/CD podem gerar inúmeras alterações aos artefactos armazenados, e a entrega por obtenção é mais eficaz para um grande volume de mensagens.
Para criar uma subscrição com entrega por obtenção:
Consola
Aceda à página de tópicos do Pub/Sub na Trusted Cloud consola.
Clique no tópico do seu projeto.
Clique em Criar subscrição.
Introduza um nome da subscrição:
projects/PROJECT/subscriptions/[SUBSCRIPTION-NAME]
Deixe o Tipo de fornecimento definido como Extrair.
Clique em Criar.
gcloud
Execute o seguinte comando:
gcloud pubsub subscriptions create SUBSCRIPTION-NAME --topic=gcr
Substitua SUBSCRIPTION-NAME por um nome para a subscrição
Para saber mais sobre o comando gcloud pubsub subscriptions
, consulte a
subscriptions
documentação.
Agora, tem uma subscrição do tópico gcr
. O passo seguinte é configurar autorizações para as identidades que acionam alterações nos repositórios.
Configurar a sua aplicação de subscrição
Depois de criar um tópico e uma subscrição desse tópico, pode configurar a sua aplicação subscritora, a aplicação que recebe mensagens sobre alterações aos repositórios. As aplicações subscritoras cumprem tarefas como notificações de eventos, registo do sistema e comunicação entre aplicações.
Quando um utilizador do repositório envia ou elimina uma imagem, ocorrem os seguintes passos:
A conta de serviço do Artifact Registry publica a alteração no seu tópico do
gcr
Google Cloud Pub/Sub. A conta de serviço é service-PROJECT-NUMBER@gcp-sa-artifactregistry.s3ns-system.iam.gserviceaccount.com, em que PROJECT-NUMBER é o seu Trusted Cloud número do projeto. A conta de serviço do Artifact Registry tem a autorizaçãopubsub.topics.publish
por predefinição para poder publicar alterações no seu tópico.Se um administrador tiver revogado as autorizações
pubsub.topics.publish
para a conta de serviço do Artifact Registry, o Artifact Registry tenta publicar a mensagem como o utilizador do repositório. Nesta situação, a conta do utilizador do repositório tem de ter a autorizaçãopubsub.topics.publish
para publicar a mensagem com êxito.O Pub/Sub encaminha a mensagem do tópico para a sua subscrição.
Quando a sua aplicação de subscrição faz um pedido de mensagens, extrai a nova mensagem da subscrição.
A identidade que extrai mensagens em nome do subscritor tem de ter autorizações para aceder à subscrição. Pode usar a função Subscritor do Pub/Sub para conceder esta autorização.
Para saber como configurar um subscritor para receber mensagens de uma subscrição com entrega por obtenção, consulte o artigo Receber mensagens através da obtenção.
Configurar autorizações
Pode usar as autorizações do Pub/Sub para controlar o acesso aos seus tópicos e subscrições.
Para mais informações acerca das autorizações do Pub/Sub e da concessão de acesso a tópicos e subscrições, consulte a documentação de controlo de acesso do Pub/Sub.
Exemplos de notificações
O Pub/Sub envia notificações como strings formatadas em JSON. Reveja os exemplos seguintes para saber o que esperar quando receber notificações do Artifact Registry a partir do Pub/Sub.
Quando uma imagem é enviada para o Artifact Registry, o payload da notificação pode ter o seguinte aspeto:
{
"action":"INSERT",
"digest":"u-france-east1-docker.s3nsregistry.fr/my-project/my-repo/hello-world@sha256:6ec128e26cd5..."
}
Quando uma nova etiqueta de imagem é enviada para o Artifact Registry, o payload de notificação tem o seguinte aspeto:
{
"action":"INSERT",
"digest":"u-france-east1-docker.s3nsregistry.fr/my-project/my-repo/hello-world@sha256:6ec128e26cd5...",
"tag":"u-france-east1-docker.s3nsregistry.fr/my-project/my-repo/hello-world:1.1"
}
A mensagem identifica a imagem relevante através de uma chave digest
ou tag
.
Quando uma etiqueta de imagem é eliminada do Artifact Registry, o payload da notificação pode ter o seguinte aspeto:
{
"action":"DELETE",
"tag":"u-france-east1-docker.s3nsregistry.fr/my-project/my-repo/hello-world:1.1"
}
A mensagem pode conter DELETE
ou INSERT
como valores para a chave action
.
O que se segue?
- Leia a documentação do Pub/Sub.
- Para uma explicação detalhada do Pub/Sub, consulte o artigo O que é o Pub/Sub?
- Saiba mais sobre as funções de controlo de acesso do Pub/Sub.