Puoi ricevere da Pub/Sub notifiche per il modifiche a un repository Docker. Le notifiche si applicano a qualsiasi immagine container archiviati nel repository, inclusi i grafici Helm 3 in formato OCI.
Pub/Sub pubblica messaggi sui tuoi repository in di risorse denominate argomenti. Applicazioni che si abbonano a Pub/Sub argomenti ricevono questi messaggi e ricevono notifiche quando vengono modifiche dello stato.
Artifact Registry pubblica messaggi per le modifiche seguenti:
- Caricamenti di immagini
- Nuovi tag aggiunti alle immagini
- Eliminazione dell'immagine
Inoltre, puoi configurare ruoli e autorizzazioni per la pubblicazione l'iscrizione alle notifiche.
Per informazioni sulla configurazione delle notifiche di Artifact Analysis per come i nuovi risultati dell'analisi delle vulnerabilità, consulta Documentazione di Artifact Analysis.
Panoramica
Artifact Registry pubblica messaggi sulle modifiche ai repository in un
all'argomento denominato gcr
.
Per ricevere le notifiche, devi:
- Crea un argomento denominato
gcr
nel progetto con Artifact Registry. - Crea una sottoscrizione per l'argomento.
- Configura l'applicazione dell'abbonato per ricevere messaggi sulle modifiche al repository.
- Se opportuno, configura le autorizzazioni per controllare l'accesso. all'argomento e alla sottoscrizione.
Creazione dell'argomento Artifact Registry
Quando attivi l'API Artifact Registry in un progetto Google Cloud,
Artifact Registry crea automaticamente un file Pub/Sub
argomento con ID argomento gcr
. Se Container Registry è abilitato nella stessa
progetto Google Cloud, l'argomento potrebbe esistere già poiché in entrambi i registry
usano lo stesso argomento per pubblicare messaggi.
Se l'argomento gcr
è stato eliminato accidentalmente o non è presente, puoi aggiungerlo
per te. Ad esempio, l'argomento potrebbe mancare se le tue risorse Google Cloud
un'organizzazione ha un vincolo dei criteri dell'organizzazione che richiede
la crittografia con chiavi di crittografia gestite dal cliente (CMEK). Quando
L'API Pub/Sub si trova nell'elenco di elementi bloccati di questo vincolo,
non possono creare automaticamente argomenti con chiavi di proprietà e gestite da Google.
Per visualizzare un elenco degli argomenti esistenti, puoi consultare Pagina degli argomenti Pub/Sub nella console Google Cloud oppure esegui questo comando:
gcloud pubsub topics list
Per creare l'argomento gcr
con chiavi di proprietà di Google e gestite da Google:
Console
Vai alla pagina degli argomenti Pub/Sub nella console Google Cloud.
Fai clic su Crea argomento.
Inserisci l'ID argomento
gcr
.Fai clic su Crea argomento.
gcloud
Esegui questo comando:
gcloud pubsub topics create gcr --project=PROJECT-ID
Sostituisci PROJECT-ID con il tuo Google Cloud
ID progetto. Se ometti il flag --project
, il comando
utilizza il progetto corrente.
Per scoprire di più sul comando gcloud pubsub topics
, consulta le
Documentazione topics
.
Per creare l'argomento gcr
con la crittografia CMEK, consulta Pub/Sub
istruzioni per criptare gli argomenti.
Dopo aver creato l'argomento gcr
o verificato che esista, puoi
creare una sottoscrizione all'argomento.
Creazione di una sottoscrizione
Dopo aver creato un argomento per le modifiche al repository, puoi configurare una sottoscrizione che utilizzi la consegna push o pull delivery. Consigliamo di utilizzare la consegna pull a partire dal giorno I sistemi CI/CD possono generare numerose modifiche agli artefatti archiviati il recapito della posta è più efficace per un grande volume di messaggi.
Per creare una sottoscrizione con consegna pull:
Console
Vai alla pagina degli argomenti Pub/Sub nella console Google Cloud.
Fai clic su un argomento del progetto.
Fai clic su Crea sottoscrizione.
Inserisci un nome per la sottoscrizione:
projects/PROJECT/subscriptions/[SUBSCRIPTION-NAME]
Lascia Tipo di consegna impostato su Pull.
Fai clic su Crea.
gcloud
Esegui questo comando:
gcloud pubsub subscriptions create SUBSCRIPTION-NAME --topic=gcr
Sostituisci SUBSCRIPTION-NAME con un nome per l'abbonamento
Per scoprire di più sul comando gcloud pubsub subscriptions
, consulta le
Documentazione subscriptions
.
Ora hai una sottoscrizione all'argomento gcr
. Il passaggio successivo è
configurare le autorizzazioni per le identità che attivano le modifiche.
nei repository.
Configurazione dell'applicazione dell'abbonato
Dopo aver creato un argomento e una sottoscrizione a questo argomento, puoi configurare l'applicazione del tuo sottoscrittore, che ricevono messaggi sulle modifiche ai repository. Applicazioni con abbonamento eseguire attività come notifiche di eventi, log di sistema e alla comunicazione tra le applicazioni.
Quando un utente del repository esegue il push o l'eliminazione di un'immagine, si verificano i seguenti passaggi:
L'account di servizio Artifact Registry pubblica la modifica in
gcr
per ogni argomento. L'account di servizio è service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com, dove PROJECT-NUMBER è il numero del tuo progetto Google Cloud. La L'account di servizio Artifact Registry ha ilpubsub.topics.publish
per impostazione predefinita, in modo da poter pubblicare modifiche all'argomento.Se un amministratore ha revocato le autorizzazioni di
pubsub.topics.publish
per l'account di servizio Artifact Registry, Artifact Registry tenta di pubblicare il messaggio come utente del repository. In questa situazione, l'account deve disporre dell'autorizzazionepubsub.topics.publish
per e pubblicare il messaggio.Pub/Sub inoltra il messaggio dall'argomento alla tua sottoscrizione.
Quando l'applicazione del sottoscrittore effettua una richiesta di messaggi, esegue il pull il nuovo messaggio dalla sottoscrizione.
L'identità che esegue il pull dei messaggi per conto del sottoscrittore deve avere le autorizzazioni di accesso all'abbonamento. Puoi utilizzare lo Ruolo di Sottoscrittore Pub/Sub per concedere questa autorizzazione.
Scopri di più sulla configurazione di un sottoscrittore per la ricezione di messaggi da una sottoscrizione con la consegna pull, consulta Ricezione di messaggi utilizzando la modalità Pull.
Configurazione delle autorizzazioni
Puoi utilizzare le autorizzazioni Pub/Sub per controllare l'accesso ai tuoi argomenti e abbonamenti.
Per ulteriori informazioni sulle autorizzazioni Pub/Sub e sulla concessione dell'accesso a gli argomenti e le sottoscrizioni, consulta Pub/Sub documentazione sul controllo dell'accesso.
Esempi di notifiche
Pub/Sub invia le notifiche come stringhe in formato JSON. Esamina il gli esempi riportati di seguito per scoprire cosa aspettarti quando ricevi notifiche Artifact Registry da Pub/Sub.
Quando viene eseguito il push di un'immagine ad Artifact Registry, la notifica il payload potrebbe avere il seguente aspetto:
{
"action":"INSERT",
"digest":"us-east1-docker.pkg.dev/my-project/my-repo/hello-world@sha256:6ec128e26cd5..."
}
Quando viene eseguito il push di un nuovo tag immagine ad Artifact Registry, la notifica il payload è simile al seguente:
{
"action":"INSERT",
"digest":"us-east1-docker.pkg.dev/my-project/my-repo/hello-world@sha256:6ec128e26cd5...",
"tag":"us-east1-docker.pkg.dev/my-project/my-repo/hello-world:1.1"
}
Il messaggio identifica l'immagine pertinente utilizzando una chiave digest
o tag
.
Quando un tag immagine viene eliminato da Artifact Registry, la notifica il payload potrebbe avere il seguente aspetto:
{
"action":"DELETE",
"tag":"us-east1-docker.pkg.dev/my-project/my-repo/hello-world:1.1"
}
Il messaggio potrebbe contenere DELETE
o INSERT
come valori per action
chiave.
Passaggi successivi
- Leggi la documentazione di Pub/Sub.
- Per una spiegazione approfondita di Pub/Sub, consulta Che cos'è Pub/Sub?
- Scopri di più su Ruoli di controllo dell'accesso di Pub/Sub.