Quando vengono apportate modifiche al repository Container Registry, ad esempio quando le immagini vengono sottoposte a push, taggate o eliminate, puoi ricevere notifiche utilizzando Pub/Sub.
Pub/Sub pubblica messaggi sul tuo repository in di risorse denominate argomenti. Questi messaggi vengono ricevuti dalle applicazioni sottoscritto ad argomenti Pub/Sub. Invio delle applicazioni dell'abbonato quando lo stato del repository cambia.
Inoltre, puoi configurare ruoli e autorizzazioni per gli argomenti Pub/Sub per controllare il modo in cui gli utenti interagiscono con il tuo repository.
Per supportare la transizione da Container Registry a Artifact Registry, Artifact Registry pubblica i messaggi nello stesso argomento di Container Registry.
Per informazioni sulla configurazione delle notifiche di Artifact Analysis per come i nuovi risultati dell'analisi delle vulnerabilità, consulta Documentazione di Artifact Analysis.
crea un argomento Pub/Sub
Quando attivi l'API Container Registry in un progetto Google Cloud,
Container Registry crea automaticamente un ambiente Pub/Sub
argomento con ID argomento gcr
.
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 è nell'elenco di rifiuto di questa limitazione, i servizi non possono creare automaticamente argomenti con chiavi di crittografia gestite da Google.
Per creare l'argomento gcr
con le chiavi di crittografia 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 crittografia CMEK, consulta le istruzioni di Pub/Sub per la crittografia degli argomenti.
Dopo aver creato l'argomento gcr
o verificato che esista, puoi
creare una sottoscrizione all'argomento.
Creare una sottoscrizione Pub/Sub
Ogni argomento Pub/Sub deve avere una sottoscrizione.
Un'applicazione dell'abbonato riceve messaggi dall'argomento del tuo repository. Gli abbonati svolgono attività quali notifiche di eventi, log di sistema e comunicazioni tra diverse applicazioni.
Le sottoscrizioni possono essere configurate in modo da utilizzare un modello push o un modello pull.
Per creare una sottoscrizione:
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-ID]/subscriptions/[SUBSCRIPTION-NAME]
Lascia Tipo di consegna impostato su Pull.
Fai clic su Crea.
gcloud
Dal sistema in cui viene eseguito il push o i tag delle immagini Docker, esegui quanto segue :
gcloud pubsub subscriptions create [SUBSCRIPTION-NAME] --topic=gcr
Per scoprire di più sul comando gcloud pubsub subscriptions
, consulta le
Documentazione subscriptions
.
Configurazione delle autorizzazioni Pub/Sub
Utilizzare il controllo dell'accesso Pub/Sub per configurare le autorizzazioni per il progetto e le risorse. I controlli dell'accesso mantengono proteggere il tuo repository e consentirti di gestire le autorizzazioni degli utenti usando l'accesso.
Puoi configurare i controlli di accesso Pub/Sub nella Pagina IAM della console Google Cloud o tramite l'API IAM.
Per configurare le autorizzazioni per la pubblicazione, utilizza una delle i seguenti ruoli: proprietario, editor, pubsub.admin, pubsub.editor, pubsub.publisher. Le entità che eseguono il push delle immagini o le eliminano dal registro devono avere l'autorizzazione
pubsub.topics.publish
per pubblicare un messaggio in in Pub/Sub.Per configurare le autorizzazioni per l'iscrizione, utilizza una delle seguenti opzioni Ruoli: proprietario, editor, pubsub.admin, pubsub.editor, pubsub.subscriber.
Esempi di notifiche
Le notifiche vengono inviate come stringhe in formato JSON. Di seguito sono riportati alcuni esempi di cosa di ricevere le notifiche di Container Registry in Pub/Sub.
Quando viene eseguito il push di un'immagine in Container Registry, il payload della notifica potrebbe avere il seguente aspetto:
{
"action":"INSERT",
"digest":"gcr.io/my-project/hello-world@sha256:6ec128e26cd5..."
}
Quando viene eseguito il push di un nuovo tag in Container Registry, il payload di notifica potrebbe avere il seguente aspetto:
{
"action":"INSERT",
"digest":"gcr.io/my-project/hello-world@sha256:6ec128e26cd5...",
"tag":"gcr.io/my-project/hello-world:1.1"
}
Il messaggio identifica l'immagine pertinente utilizzando una chiave digest
o tag
.
Quando un tag viene eliminato da Container Registry, il payload di notifica potrebbe avere il seguente aspetto:
{
"action":"DELETE",
"tag":"gcr.io/my-project/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ù sui ruoli di controllo dell'accesso Pub/Sub.