Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Trigger di Cloud Storage

In Cloud Functions, un trigger di Cloud Storage consente di chiamare una funzione in risposta alle modifiche apportate in Cloud Storage. Quando specifichi un trigger di Cloud Storage per una funzione, scegli un tipo di evento e specifica un bucket Cloud Storage. La funzione verrà richiamata ogni volta che si verifica una modifica su un oggetto (file) all'interno del bucket specificato.

Sono supportati i seguenti tipi di eventi Cloud Storage:

Evento Tipo di evento Descrizione
Oggetto finalizzato
  • 2a generazione: google.cloud.storage.object.v1.finalized (tramite Eventarc)
  • 1a generazione: google.storage.object.finalize
Si verifica quando viene creato un nuovo oggetto oppure quando viene sovrascritto un oggetto esistente e viene creata una nuova generazione di tale oggetto.
Oggetto eliminato
  • 2a generazione: google.cloud.storage.object.v1.deleted (tramite Eventarc)
  • 1a generazione: google.storage.object.delete
Si verifica quando un oggetto viene eliminato definitivamente.
Oggetto archiviato
  • 2a generazione: google.cloud.storage.object.v1.archived (tramite Eventarc)
  • 1a generazione: google.storage.object.archive
Si verifica quando una versione live di un oggetto diventa una versione non corrente. Per ulteriori informazioni, consulta la pagina relativa al controllo delle versioni degli oggetti.
Metadati degli oggetti aggiornati
  • 2a generazione: google.cloud.storage.object.v1.metadataUpdated (tramite Eventarc)
  • 1a generazione: google.storage.object.metadataUpdate
Si verifica quando i metadati di un oggetto esistente cambiano.

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

Il repository Google Eventi contiene risorse aggiuntive per lavorare con i dati degli eventi.

Autorizzazioni

Per utilizzare i trigger di Cloud Storage, l'agente di servizio Cloud Storage deve avere il ruolo Publisher Pub/Sub (roles/pubsub.publisher) nel tuo progetto.

Deployment

Puoi specificare un trigger di Cloud Storage quando esegui il deployment di una funzione. Consulta la sezione Eseguire il deployment di una funzione Cloud per istruzioni generali su come eseguire il deployment di una funzione e leggi di seguito per ulteriori informazioni sulla configurazione dei trigger di Cloud Storage durante il deployment.

gcloud

Se esegui il deployment utilizzando l'interfaccia a riga di comando gcloud, 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] \
...
  • Il flag --trigger-bucket specifica il bucket Cloud Storage che il trigger monitora. Gli eventi Finalmente oggetti all'interno di questo bucket attiveranno le chiamate alla tua funzione.
  • Il flag --retry controlla se viene eseguito automaticamente un nuovo tentativo delle chiamate a funzioni non riuscite. Per ulteriori informazioni, consulta Riprovare le funzioni basate su eventi.

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

  • Per Cloud Functions (2a generazione):

    gcloud functions deploy YOUR_FUNCTION_NAME \
    --gen2 \
    --trigger-event-filters="type=EVENT_TYPE" \
    --trigger-event-filters="bucket=YOUR_STORAGE_BUCKET" \
    ...
    
  • Per Cloud Functions (1a generazione):

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

Eventi precedenti di Cloud Storage

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

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

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

console

Se stai eseguendo il deployment utilizzando la console Google Cloud, puoi configurare un trigger di Cloud Storage nella sezione Trigger.

  • Per Cloud Functions (2a generazione):

    1. Fai clic su Aggiungi trigger Eventarc per aggiungere un trigger di eventi. Si apre il riquadro Trigger Eventarc.
    2. Nel campo Provider di eventi, seleziona Cloud Storage.
    3. Nel campo Evento, seleziona un tipo di evento.
    4. Nel campo Bucket, fai clic su Sfoglia per selezionare un bucket Cloud Storage per il trigger da monitorare. Le modifiche agli oggetti all'interno di questo bucket attiveranno le chiamate alla tua funzione.
    5. Seleziona o deseleziona la casella di controllo Riprova in caso di errore per stabilire se le chiamate di funzione non riuscite vengono sottoposte automaticamente a un nuovo tentativo. Per ulteriori informazioni, consulta Riprovare le funzioni basate su eventi.
    6. Fai clic su Salva trigger.
  • Per Cloud Functions (1a generazione):

    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 per il trigger da monitorare. Le modifiche agli oggetti 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 stabilire se le chiamate di funzione non riuscite vengono sottoposte automaticamente a un nuovo tentativo. Per ulteriori informazioni, consulta Riprovare le funzioni basate su eventi.

Consegna di eventi

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

Un bucket Cloud Storage può impostare fino a 10 configurazioni di notifica per l'attivazione di un evento specifico. Il superamento dei limiti di notifica del bucket comporterà ulteriori errori di deployment delle funzioni con un errore come il seguente:

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

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

Passaggi successivi