Google Cloud Storage-Trigger

In Cloud Functions ermöglicht ein Cloud Storage-Trigger das Aufrufen einer Funktion als Reaktion auf Änderungen in Cloud Storage. Wählen Sie einen Ereignistyp aus und geben einen Cloud Storage-Bucket an, wenn Sie einen Cloud Storage-Trigger für eine Funktion angeben. Die Funktion wird immer dann aufgerufen, wenn eine Änderung an einem Objekt (Datei) im angegebenen Bucket erfolgt.

Die folgenden Cloud Storage-Ereignistypen werden unterstützt:

Ereignis Ereignistyp Beschreibung
Objekt abgeschlossen
  • 2. Generation: google.cloud.storage.object.v1.finalized (über Eventarc)
  • 1. Generation: google.storage.object.finalize
Tritt auf, wenn ein neues Objekt erstellt oder ein vorhandenes Objekt überschrieben und eine neue Generierung dieses Objekts erstellt wird.
Objekt gelöscht
  • 2. Generation: google.cloud.storage.object.v1.deleted (über Eventarc)
  • 1. Generation: google.storage.object.delete
Tritt auf, wenn ein Objekt endgültig gelöscht wird.
Objekt archiviert
  • 2. Generation: google.cloud.storage.object.v1.archived (über Eventarc)
  • 1. Generation: google.storage.object.archive
Tritt auf, wenn eine Liveversion eines Objekts zu einer nicht aktuellen Version wird. Weitere Informationen finden Sie unter Objektversionsverwaltung.
Objektmetadaten aktualisiert
  • 2. Generation: google.cloud.storage.object.v1.metadataUpdated (über Eventarc)
  • 1. Generation: google.storage.object.metadataUpdate
Tritt auf, wenn sich die Metadaten eines vorhandenen Objekts ändern.

Damit eine Funktion einen Cloud Storage-Trigger verwenden kann, muss sie als ereignisgesteuerte Funktion implementiert werden:

Das Repository Google Events enthält zusätzliche Ressourcen für die Arbeit mit Ereignisdaten.

Berechtigungen

Zur Verwendung von Cloud Storage-Triggern in Cloud Functions (2nd gen) muss der Cloud Storage-Dienst-Agent die IAM-Rolle Pub/Sub Publisher (roles/pubsub.publisher) in Ihrem Projekt haben. Diese Anforderung gilt nicht für Cloud Functions (1st gen).

Bereitstellung

Sie können einen Cloud Storage-Trigger angeben, wenn Sie eine Funktion bereitstellen. Allgemeine Anleitungen zum Bereitstellen einer Funktion finden Sie unter Cloud Functions-Funktion bereitstellen. Weiter unten finden Sie zusätzliche Informationen zum Konfigurieren von Cloud Storage-Triggern während der Bereitstellung.

gcloud

Wenn Sie die gcloud CLI verwenden, können Sie den Cloud Storage-Ereignistyp Objekt abgeschlossen mit den folgenden Flags verwenden:

gcloud functions deploy YOUR_FUNCTION_NAME \
--trigger-bucket=YOUR_STORAGE_BUCKET \
[--retry] \
...
  • Das Flag --trigger-bucket gibt den Cloud Storage-Bucket an, den der Trigger überwacht. Objekt abgeschlossene Ereignisse in diesem Bucket lösen Aufrufe an Ihre Funktion aus.
  • Mit dem Flag --retry wird gesteuert, ob fehlgeschlagene Funktionsaufrufe automatisch wiederholt werden. Weitere Informationen finden Sie unter Ereignisgesteuerte Funktionen wiederholen.

Verwenden Sie die folgenden Flags, wenn Sie andere Ereignistypen als Objekt abgeschlossen verwenden möchten:

  • Für Cloud Functions (2. Generation):

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

    Geben Sie beim Bereitstellen von Funktionen der 2. Generation nur den Bucket-Namen ohne das führende gs:// an. Beispiel: --trigger-event-filters="bucket=my-bucket"

  • Für Cloud Functions (1. Generation):

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

Legacy-Cloud Storage-Ereignisse

Legacy-Funktionen in Cloud Functions (1. Generation) verwenden Legacy-Benachrichtigungen über Objektänderungen für Cloud Storage-Trigger:

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

Dieser Ereignistyp wird für Legacy-Funktionen unterstützt, die diese Ereignisse bereits verwenden. Es wird jedoch nicht empfohlen, diesen Ereignistyp zu verwenden, da er möglicherweise in Zukunft entfernt wird.

Console

Wenn Sie die Bereitstellung mit der Google Cloud Console ausführen, können Sie einen Cloud Storage-Trigger im Abschnitt Trigger konfigurieren.

  • Für Cloud Functions (2. Generation):

    1. Wählen Sie im Feld Triggertyp die Option Cloud Storage aus.
    2. Wählen Sie im Feld Ereignistyp ein auslösendes Ereignis aus. Der Standardwert ist google.cloud.storage.object.v1.finalized.

      Informationen zu einem Cloud Storage-Ereignis, das Cloud-Audit-Logs verwendet, finden Sie in der Anleitung zur Triggerkonfiguration für einen Eventarc-Trigger.

    3. Klicken Sie im Feld Bucket auf Durchsuchen, um einen Cloud Storage-Bucket auszuwählen, den der Trigger überwachen soll. Änderungen an Objekten in diesem Bucket lösen Aufrufe Ihrer Funktion aus.

    4. Aktivieren oder deaktivieren Sie das Kästchen Bei Fehler noch einmal versuchen, um zu bestimmen, ob Cloud Functions einen fehlgeschlagenen Funktionsaufruf automatisch wiederholt. Weitere Informationen finden Sie unter Ereignisgesteuerte Funktionen wiederholen.

    5. Klicken Sie auf Weitere Optionen, um auf dem Trigger eine zusätzliche Konfiguration vorzunehmen:

      • Geben Sie im Feld Triggertyp eine der Optionen Google-Quellen, Benutzerdefiniert oder Drittanbieter an:

        • Mit Google-Quellen können Sie Trigger für Pub/Sub, Cloud Storage, Firestore und andere Google-Ereignisanbieter angeben.Im Bereich Eventarc-Trigger verwenden Sie das Feld Ereignisanbieter, um das Produkt auszuwählen, das den Ereignistyp angibt, mit dem Sie die Funktion auslösen möchten. Wählen Sie dann im Feld Ereignis das Ereignis aus, das Sie als Trigger verwenden möchten.

        • Mit der Option Benutzerdefiniert können Sie Ereignisse aus Ihrem Anwendungscode erstellen und verarbeiten. Folgen Sie den Eingabeaufforderungen im Bereich Eventarc-Trigger, um einen Kanal zu erstellen. Ein Kanal ist eine Ressource, die als Pipeline verwendet wird, um benutzerdefinierte Ereignisse von Erstellern an Nutzer bereitzustellen. Benutzerdefinierte Ereignisse werden in einem Kanal veröffentlicht und ein Eventarc-Trigger abonniert diese Ereignisse.

        • Die Option Drittanbieter ermöglicht die Einbindung in Nicht-Google-Anbieter, die eine Eventarc-Quelle anbieten. Weitere Informationen finden Sie unter Drittanbieterereignisse in Eventarc.

      • Wählen Sie im Feld Ereignis ein auslösendes Ereignis aus. Der Standardwert ist google.cloud.storage.object.v1.finalized.

      • Wählen Sie optional im Feld Dienstkonto ein Dienstkonto aus, das als Identität des Eventarc-Triggers verwendet werden soll. Weitere Informationen finden Sie unter Triggeridentität.

    6. Klicken Sie auf Trigger speichern.

  • Für Cloud Functions (1. Generation):

    1. Wählen Sie im Feld Triggertyp die Option Cloud Storage aus.
    2. Wählen Sie im Feld Ereignistyp einen Ereignistyp aus.
    3. Klicken Sie im Feld Bucket auf Durchsuchen, um einen Cloud Storage-Bucket auszuwählen, den der Trigger überwachen soll. Änderungen an Objekten in diesem Bucket lösen Aufrufe Ihrer Funktion aus.
    4. Aktivieren oder deaktivieren Sie das Kästchen Bei Fehler noch einmal versuchen, um zu steuern, ob fehlgeschlagene Funktionsaufrufe automatisch wiederholt werden. Weitere Informationen finden Sie unter Ereignisgesteuerte Funktionen wiederholen.

Ereignisübermittlung

Cloud Storage-Trigger werden mit Pub/Sub-Benachrichtigungen für Cloud Storage implementiert. Ereignisse unterliegen den Garantien für die Pub/Sub-Benachrichtigungsübermittlung.

Ein Cloud Storage-Bucket kann bis zu 10 Benachrichtigungskonfigurationen haben, die zum Auslösen von Benachrichtigungen für ein bestimmtes Ereignis festgelegt sind. Wenn Sie die Benachrichtigungslimits des Buckets überschreiten, schlagen weitere Funktionsbereitstellungen mit einem Fehler wie dem folgenden fehl:

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

Weitere Informationen finden Sie unter Kontingente und Limits für Cloud Storage.

Weitere Informationen