Trigger di Cloud Storage (2ª generazione)

In Cloud Functions, un trigger di Cloud Storage consente di chiamare una funzione in risposta ai cambiamenti in Cloud Storage. Quando un trigger Cloud Storage per una funzione, scegli un evento digita e specifica un bucket Cloud Storage. La tua funzione verrà chiamata ogni volta che si verifica una modifica su un oggetto (file) all'interno del bucket specificato.

Sono supportati i seguenti tipi di eventi di Cloud Storage:

Evento Tipo di evento Descrizione
Oggetto finalizzato
  • google.cloud.storage.object.v1.finalized (tramite Eventarc)
Si verifica quando viene creato un nuovo oggetto o quando un oggetto esistente sovrascritto e ne viene creata una nuova generazione.
Oggetto eliminato
  • google.cloud.storage.object.v1.deleted (tramite Eventarc)
Si verifica quando un oggetto viene eliminato definitivamente.
Oggetto archiviato
  • google.cloud.storage.object.v1.archived (tramite Eventarc)
Si verifica quando una versione live di un oggetto diventa una versione non corrente. Consulta Controllo delle versioni degli oggetti per ulteriori informazioni.
Metadati dell'oggetto aggiornati
  • google.cloud.storage.object.v1.metadataUpdated (tramite Eventarc)
Si verifica quando i metadati di un modifiche esistenti all'oggetto.

Un trigger di Cloud Storage viene implementato come Funzione CloudEvent, in cui i dati degli eventi Cloud Storage vengono passati alla funzione in il formato CloudEvents e i dati di CloudEvent il payload è di tipo StorageObjectData.

La Google Eventi contiene risorse aggiuntive per l'uso dei dati sugli eventi.

Autorizzazioni

Per utilizzare i trigger di Cloud Storage in Cloud Functions, l'agente di servizio Cloud Storage devi avere il publisher Pub/Sub (roles/pubsub.publisher) ruolo IAM per il tuo progetto.

Deployment

Puoi specificare un trigger di Cloud Storage quando esegui il deployment di una funzione. Consulta Esegui il deployment di una funzione Cloud Functions per istruzioni generali su come eseguire il deployment di una funzione e vedi quanto segue per Informazioni aggiuntive specifiche per la configurazione dei trigger di Cloud Storage durante il deployment.

gcloud

Se con gcloud CLI, puoi utilizzare il tipo di evento Oggetto finalizzato di Cloud Storage con i seguenti flag:

gcloud functions deploy YOUR_FUNCTION_NAME \
--trigger-bucket=YOUR_STORAGE_BUCKET \
[--retry] \
...
  • La --trigger-bucket specifica il bucket Cloud Storage che il trigger monitoraggio. Gli eventi finali dell'oggetto all'interno di questo bucket attiveranno le chiamate al tuo personalizzata.
  • La Controlli flag --retry se le chiamate di funzione non riuscite vengono ritentate automaticamente. Consulta Ripetere le funzioni basate su eventi per ulteriori informazioni.

Per utilizzare tipi di eventi diversi da Oggetto finalizzato, usa i seguenti flag:

  gcloud functions deploy YOUR_FUNCTION_NAME 
--gen2
--trigger-event-filters="type=EVENT_TYPE"
--trigger-event-filters="bucket=YOUR_STORAGE_BUCKET"
...

Quando esegui il deployment delle funzioni, specifica solo il nome del bucket senza gs:// in testa; ad esempio --trigger-event-filters="bucket=my-bucket".

Console

Se tramite la console Google Cloud, puoi configurare un trigger di Cloud Storage nella sezione Trigger:

  1. Nel campo Tipo di trigger, scegli Cloud Storage.
  2. Nel campo Tipo di evento, scegli un evento di attivazione. L'impostazione predefinita è google.cloud.storage.object.v1.finalized.

    Per un evento Cloud Storage che utilizza Cloud Audit Logs, consulta le istruzioni di configurazione dell'attivatore per un trigger Eventarc.

  3. Nel campo Bucket, fai clic su Sfoglia per selezionare una Bucket Cloud Storage da monitorare con il trigger. Modifiche a all'interno di questo bucket attiveranno le chiamate alla tua funzione.

  4. Seleziona o deseleziona la casella di controllo Riprova in caso di errore per controllare se Cloud Functions ritenta automaticamente una funzione con esito negativo invocazione. Consulta Ripetere le funzioni basate su eventi per ulteriori informazioni.

  5. Fai clic su Altre opzioni per eseguire un'ulteriore configurazione sul tuo Attivatore:

    • Nel campo Tipo di attivatore, specifica una delle origini Google, Personalizzato o di terze parti:

      • Con Origini Google puoi specificare gli attivatori per Pub/Sub, Cloud Storage Firestore e altri provider di eventi Google. Nel riquadro Trigger Eventarc, utilizza il Provider di eventi per selezionare il prodotto che fornisce il tipo di evento che vuoi attivare la funzione. Nel campo Evento, e seleziona l'evento da utilizzare come attivatore.

      • L'opzione Personalizzato ti consente di produrre e utilizzare eventi da del codice della tua applicazione. Segui le istruzioni nella Riquadro Trigger Eventarc per creare un del canale. Un canale è una risorsa utilizzata come pipeline per distribuire eventi personalizzati dai producer ai consumer. Gli eventi personalizzati sono pubblicata su un canale e un trigger Eventarc sottoscrive questi eventi.

      • L'opzione Di terze parti ti consente di eseguire l'integrazione con che offrono un'origine Eventarc. Consulta eventi di terze parti in Eventarc per maggiori dettagli.

    • Nel campo Evento, seleziona un evento di attivazione. L'impostazione predefinita è google.cloud.storage.object.v1.finalized.

    • Facoltativamente, nel campo Account di servizio, seleziona un account di servizio per come identità del trigger Eventarc. Consulta Identità trigger per ulteriori informazioni.

  6. Fai clic su Salva trigger.

Consegna di eventi

I trigger di Cloud Storage sono implementati Notifiche Pub/Sub per Cloud Storage. Gli eventi sono soggetti a Garanzie di consegna delle notifiche Pub/Sub.

Un bucket Cloud Storage può avere fino a 10 configurazioni di notifica per un evento specifico. Superamento dei limiti di notifiche del bucket causerà l'errore di ulteriori deployment della funzione, con un errore come il seguente:

Cloud Storage bucket ...: Pub/Sub notification limit reached

Per saperne di più, consulta Quote e limiti di Cloud Storage.

Passaggi successivi