Questa pagina descrive come configurare il bucket per l'invio di notifiche relative alle modifiche degli oggetti a un argomento Pub/Sub. Per informazioni su come abbonarsi a un argomento Pub/Sub che riceve notifiche, consulta Scegliere un tipo di abbonamento.
Prima di iniziare
Prima di utilizzare questa funzionalità, completa le seguenti istruzioni.
Abilita l'API Pub/Sub
Abilita l'API Pub/Sub per il progetto che riceverà le notifiche.
Assicurati di avere un argomento Pub/Sub esistente
Se non l'hai ancora fatto, crea un argomento Pub/Sub a cui vuoi inviare le notifiche. Questo passaggio non è necessario se prevedi di utilizzare Google Cloud CLI o Terraform per eseguire le istruzioni riportate in questa pagina.
Ottieni i ruoli richiesti
I requisiti dei ruoli IAM variano a seconda che tu stia configurando la notifica o recapitando i dati sugli eventi:
Se utilizzi Google Cloud CLI o Terraform per configurare una notifica, la tua identità deve disporre solo delle autorizzazioni per aggiornare i metadati del bucket e visualizzare l'argomento Pub/Sub. Per ottenere tutte le autorizzazioni necessarie, segui le istruzioni riportate in Ottieni i ruoli per visualizzare i metadati del bucket e l'argomento Pub/Sub.
Se il service agent Cloud Storage invia notifiche, deve avere il ruolo Publisher Pub/Sub (
roles/pubsub.publisher) nell'argomento Pub/Sub. Una volta configurato questo ruolo per il service agent, quest'ultimo agisce come un "worker" in background per eseguire il push degli eventi nell'argomento.Per concedere al service agent le autorizzazioni necessarie per inviare notifiche di eventi all'argomento, segui le istruzioni riportate in Concedere ruoli al service agent del progetto.
Ottieni i ruoli per visualizzare i metadati del bucket e l'argomento Pub/Sub
Per ottenere le autorizzazioni necessarie per configurare e visualizzare le notifiche Pub/Sub per un bucket, chiedi all'amministratore di concederti i seguenti ruoli. Questi ruoli predefiniti contengono le autorizzazioni necessarie per configurare e visualizzare le notifiche Pub/Sub.
Ruolo Storage Admin (
roles/storage.admin) nel bucket per il quale vuoi configurare le notifiche Pub/SubRuolo Pub/Sub Admin (
roles/pubsub.admin) nel progetto in cui vuoi ricevere le notifiche Pub/Sub
Potresti essere in grado di ottenere queste autorizzazioni con altri ruoli predefiniti o ruoli personalizzati.
Consulta Impostare e gestire le policy IAM sui bucket per istruzioni sulla concessione dei ruoli sui bucket. Consulta Controllo dell'accesso per istruzioni sulla concessione dei ruoli nei progetti e sull'impostazione dei controlli dell'accesso per argomenti e abbonamenti.
Concedi il ruolo richiesto al service agent del progetto
Questa sezione mostra come concedere le autorizzazioni necessarie al tuo service agent per inviare notifiche.
Recupera l'indirizzo email del service agent associato al progetto che contiene il bucket Cloud Storage. L'indirizzo email del service agent ha il seguente formato:
service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.comConcedi al service agent il ruolo Publisher Pub/Sub (
roles/pubsub.publisher) per l'argomento Pub/Sub pertinente. Consulta Controllo dell'accesso per istruzioni sulla concessione dei ruoli per gli argomenti.
Applica una configurazione delle notifiche
I passaggi seguenti aggiungono una configurazione di notifica al bucket che invia notifiche per tutti gli eventi supportati.
Console
Non puoi gestire le notifiche Pub/Sub con la consoleGoogle Cloud . Utilizza invece gcloud CLI o una delle librerie client disponibili.
Riga di comando
Utilizza il comando gcloud storage buckets notifications create:
gcloud storage buckets notifications create gs://BUCKET_NAME --topic=TOPIC_NAME
Dove:
BUCKET_NAMEè il nome del bucket pertinente. Ad esempio,my-bucket.TOPIC_NAMEè l'argomento Pub/Sub a cui inviare le notifiche. Se specifichi un argomento che non esiste nel tuo progetto, il comando ne crea uno per te.
Per inviare notifiche per un sottoinsieme di eventi, includi il flag --event-types.
Librerie client
C++
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C++.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
C#
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C#.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Go
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Go.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Java
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Java.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Node.js
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Node.js.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
PHP
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage PHP.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Per creare una configurazione di notifica per un bucket utilizzando PHP, consulta la documentazione di riferimento della libreria client Google Cloud.Python
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Python.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Ruby
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Ruby.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Terraform
Puoi utilizzare una risorsa Terraform per aggiungere una configurazione di notifica a un bucket.
API REST
API JSON
Avere gcloud CLI installato e inizializzato, che ti consente di generare un token di accesso per l'intestazione
Authorization.Crea un file JSON contenente le seguenti informazioni:
{ "topic": "projects/PROJECT_ID/topics/TOPIC_NAME", "payload_format": "JSON_API_V1" }
Dove:
PROJECT_IDè l'ID del progetto associato all'argomento Pub/Sub a cui vuoi inviare le notifiche. Ad esempio,my-pet-project.TOPIC_NAMEè l'argomento Pub/Sub a cui inviare le notifiche. Ad esempio,my-topic.
Per inviare notifiche per un sottoinsieme di eventi, includi il campo
event_typesnel corpo della richiesta JSON.Utilizza
cURLper chiamare l'API JSON con una richiestaPOST notificationConfigs:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/notificationConfigs"
Dove:
JSON_FILE_NAMEè il percorso del file che hai creato nel passaggio 2.BUCKET_NAMEè il nome del bucket per cui vuoi generare le notifiche. Ad esempio,my-bucket.
API XML
Non puoi gestire le notifiche Pub/Sub con l'API XML.
Applica una configurazione di notifica ai progetti
Il bucket potrebbe trovarsi in un progetto diverso rispetto all'argomento Pub/Sub a cui vuoi inviare le notifiche. Ad esempio, il bucket potrebbe trovarsi nel progetto A mentre l'argomento Pub/Sub si trova nel progetto B. In questo scenario, assicurati di:
Nel progetto B, concedi il ruolo Publisher Pub/Sub (
roles/pubsub.publisher) al service agent Cloud Storage del progetto A nell'argomento di destinazione. Per maggiori dettagli, consulta Concedi l'autorizzazione richiesta al service agent.Quando crei la configurazione della notifica nel progetto A, fornisci il percorso completo all'argomento nel progetto B. Ad esempio:
projects/PROJECT_B_ID/topics/TOPIC_NAME
Recupera una configurazione di notifica
Per ottenere una configurazione di notifica specifica associata al tuo bucket, completa i seguenti passaggi:
Console
Non puoi gestire le notifiche Pub/Sub con la consoleGoogle Cloud . Utilizza invece Google Cloud CLI o una delle librerie client disponibili.
Riga di comando
Utilizza il comando gcloud storage buckets notifications describe:
gcloud storage buckets notifications describe projects/_/buckets/BUCKET_NAME/notificationConfigs/NOTIFICATION_ID
Dove:
BUCKET_NAMEè il nome del bucket di cui vuoi recuperare la configurazione delle notifiche. Ad esempio,my-bucket.NOTIFICATION_IDè il numero ID della configurazione pertinente. Ad esempio,5.
Se l'operazione ha esito positivo, la risposta è simile al seguente esempio:
etag: '132' id: '132' kind: storage#notification payload_format: JSON_API_V1 selfLink: https://www.googleapis.com/storage/v1/b/my-bucket/notificationConfigs/132 topic: //pubsub.googleapis.com/projects/my-project/topics/my-bucket
Librerie client
C++
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C++.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
C#
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C#.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Go
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Go.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Java
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Java.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Node.js
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Node.js.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
PHP
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage PHP.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Per ottenere una configurazione di notifica per un bucket utilizzando PHP, consulta la documentazione di riferimento della libreria client di Google Cloud.Python
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Python.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Ruby
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Ruby.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
API REST
API JSON
Avere gcloud CLI installato e inizializzato, che ti consente di generare un token di accesso per l'intestazione
Authorization.Utilizza
cURLper chiamare l'API JSON con una richiestaGET notificationConfigs:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/notificationConfigs/NOTIFICATION_ID"
Dove:
BUCKET_NAMEè il nome del bucket di cui vuoi recuperare la configurazione di notifica. Ad esempio,my-bucket.NOTIFICATION_IDè il numero ID della configurazione di notifica che vuoi recuperare. Ad esempio,5.
API XML
Non puoi gestire le notifiche Pub/Sub con l'API XML.
Elenca le configurazioni delle notifiche per un bucket
Per elencare tutte le configurazioni di notifica associate a un determinato bucket:
Console
Non puoi gestire le notifiche Pub/Sub con la consoleGoogle Cloud . Utilizza invece gcloud CLI o una delle librerie client disponibili.
Riga di comando
Utilizza il comando gcloud storage buckets notifications list:
gcloud storage buckets notifications list gs://BUCKET_NAME
Dove BUCKET_NAME è il nome del bucket di cui vuoi elencare le configurazioni di notifica. Ad esempio,
my-bucket.
Librerie client
C++
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C++.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
C#
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C#.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Go
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Go.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Java
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Java.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Node.js
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Node.js.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
PHP
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage PHP.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Per elencare le configurazioni di notifica associate a un bucket utilizzando PHP, consulta la documentazione di riferimento della libreria client Google Cloud.Python
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Python.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Ruby
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Ruby.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
API REST
API JSON
Avere gcloud CLI installata e inizializzata, il che ti consente di generare un token di accesso per l'intestazione
Authorization.Utilizza
cURLper chiamare l'API JSON con una richiestaGET notificationConfigs:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/notificationConfigs"
Dove
BUCKET_NAMEè il nome del bucket di cui vuoi elencare le configurazioni di notifica. Ad esempio,my-bucket.
API XML
Non puoi gestire le notifiche Pub/Sub con l'API XML.
Rimuovi una configurazione di notifica
Per rimuovere una configurazione di notifica esistente dal bucket:
Console
Non puoi gestire le notifiche Pub/Sub con la consoleGoogle Cloud . Utilizza invece gcloud CLI o una delle librerie client disponibili.
Riga di comando
Utilizza il comando gcloud storage buckets notifications delete:
gcloud storage buckets notifications delete projects/_/buckets/BUCKET_NAME/notificationConfigs/NOTIFICATION_ID
Dove:
BUCKET_NAMEè il nome del bucket di cui vuoi eliminare la configurazione di notifica. Ad esempio,my-bucket.NOTIFICATION_IDè il numero ID della configurazione che vuoi eliminare. Ad esempio,5.
Se l'operazione ha esito positivo, la risposta è simile al seguente esempio:
Completed 1
Una volta inviata, potrebbero essere necessari fino a 30 secondi prima che tutte le notifiche attivate dalla configurazione delle notifiche vengano interrotte.
Librerie client
C++
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C++.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
C#
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C#.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Go
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Go.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Java
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Java.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Node.js
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Node.js.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
PHP
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage PHP.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Per eliminare una configurazione di notifica per un bucket utilizzando PHP, consulta la documentazione di riferimento della libreria client di Google Cloud.Python
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Python.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Ruby
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Ruby.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Terraform
Per rimuovere la configurazione di notifica che hai creato, esegui terraform destroy dalla cartella contenente il file Terraform.
API REST
API JSON
Avere gcloud CLI installata e inizializzata, il che ti consente di generare un token di accesso per l'intestazione
Authorization.Utilizza
cURLper chiamare l'API JSON con una richiestaDELETE notificationConfigs:curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/notificationConfigs/NOTIFICATION_ID"
Dove:
BUCKET_NAMEè il nome del bucket di cui vuoi eliminare la configurazione di notifica. Ad esempio,my-bucket.NOTIFICATION_IDè il numero ID della configurazione di notifica che vuoi eliminare. Ad esempio,5.
Una volta inviata, potrebbero essere necessari fino a 30 secondi prima che tutte le notifiche attivate dalla configurazione di notifica vengano interrotte.
API XML
Non puoi gestire le notifiche Pub/Sub con l'API XML.
Passaggi successivi
Scopri di più sulle notifiche Pub/Sub per Cloud Storage.
Crea una sottoscrizione in Pub/Sub per visualizzare le notifiche inviate da Cloud Storage.
Guarda un'app di esempio in Python che esegue il polling delle notifiche su GitHub.
Utilizza Cloud Run Functions per distribuire eventi con un trigger Cloud Storage.