Trigger di Cloud Storage (1ª generazione.)

Nelle funzioni Cloud Run, un trigger Cloud Storage consente di chiamare una funzione in risposta alle modifiche in Cloud Storage. Quando specifichi un trigger Cloud Storage per una funzione, scegli un tipo di evento e specifica un bucket Cloud Storage. La tua funzione verrà chiamata ogni volta che si verifica una modifica a un oggetto (file) all'interno del bucket specificato.

Sono supportati i seguenti tipi di eventi Cloud Storage:

Evento Tipo di evento Descrizione
Oggetto finalizzato
  • google.storage.object.finalize
Si verifica quando viene creato un nuovo oggetto o un oggetto esistente viene sovrascritto e viene creata una nuova generazione di quell'oggetto.
Oggetto eliminato
  • google.storage.object.delete
Si verifica quando un oggetto viene eliminato definitivamente.
Oggetto archiviato
  • google.storage.object.archive
Si verifica quando una versione attiva di un oggetto diventa una versione non corrente. Per saperne di più, consulta la sezione Controllo delle versioni degli oggetti.
Object metadata updated
  • google.storage.object.metadataUpdate
Si verifica quando i metadati di un oggetto esistente cambiano.

Affinché una funzione utilizzi un trigger Cloud Storage, deve essere implementata come una funzione basata su eventi:

Il repository Google Events contiene risorse aggiuntive per lavorare con i dati sugli eventi.

Deployment

Puoi specificare un trigger Cloud Storage quando esegui il deployment di una funzione. Consulta Eseguire il deployment di una funzione Cloud Run per istruzioni generali su come eseguire il deployment di una funzione e consulta quanto segue per informazioni aggiuntive specifiche per la configurazione dei trigger Cloud Storage durante il deployment.

gcloud

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

gcloud functions deploy YOUR_FUNCTION_NAME \
--no-gen2 \
--trigger-bucket=YOUR_STORAGE_BUCKET \
[--retry] \
...

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

  gcloud functions deploy YOUR_FUNCTION_NAME 
--no-gen2
--trigger-event=EVENT_TYPE
--trigger-resource=YOUR_STORAGE_BUCKET
...

Eventi legacy di Cloud Storage

Le funzioni legacy in Cloud Run Functions (1ª generazione.) utilizzano le notifiche di modifica degli oggetti legacy per i trigger Cloud Storage:

gcloud functions deploy YOUR_FUNCTION_NAME \
--no-gen2 \
--trigger-event=providers/cloud.storage/eventTypes/object.change \
--trigger-resource=YOUR_STORAGE_BUCKET \
...

Questo tipo di evento è supportato per le funzioni legacy che consumano già questi eventi. Tuttavia, non consigliamo di utilizzare questo tipo di evento perché potrebbe essere rimosso in futuro.

Console

Se esegui il deployment utilizzando la Google Cloud console, puoi configurare un trigger Cloud Storage nella sezione Trigger:

  1. Nel campo Tipo di trigger, seleziona Cloud Storage.
  2. Nel campo Tipo di evento, seleziona un tipo di evento.
  3. Nel campo Bucket, fai clic su Sfoglia per selezionare un bucket Cloud Storage da monitorare per il trigger. Le modifiche agli oggetti all'interno di questo bucket attiveranno chiamate alla tua funzione.
  4. Seleziona o deseleziona la casella di controllo Riprova in caso di errore per controllare se le chiamate di funzioni non riuscite vengono ritentate automaticamente. Per saperne di più, consulta Nuovo tentativo per le funzioni basate su eventi.

Distribuzione di eventi

I trigger Cloud Storage vengono implementati con le notifiche Pub/Sub per Cloud Storage. Gli eventi sono soggetti alle garanzie di distribuzione delle notifiche Pub/Sub.

Un bucket Cloud Storage può avere fino a 10 configurazioni di notifica impostate per attivare un evento specifico. Il superamento dei limiti delle notifiche del bucket causerà l'esito negativo di ulteriori deployment di funzioni con un errore simile al seguente:

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

Puoi aggirare questa limitazione gestendo il tuo argomento Pub/Sub e registrandolo per le notifiche Cloud Storage del tipo a cui vuoi che la tua funzione risponda. Ad esempio, puoi configurare una singola notifica per l'evento scelto (ad esempio la creazione di oggetti) in un argomento Pub/Sub. Quindi, aggiungi tutti gli abbonati alla funzione necessari all'argomento per elaborare l'evento e distribuirlo a più destinazioni. Ad esempio:

  1. Crea il tuo argomento Pub/Sub.
  2. Crea una singola configurazione di notifica nel bucket Cloud Storage che si attiva in base a un evento specifico (ad esempio OBJECT_FINALIZE per la creazione di oggetti) e invia l'evento al tuo singolo argomento Pub/Sub.
  3. Crea una o più funzioni attivate dall'argomento Pub/Sub.

Consulta Quote e limiti di Cloud Storage per saperne di più sulle limitazioni di Cloud Storage.

Passaggi successivi