Cloud Storage-Trigger
In Cloud Run 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 |
|
Tritt auf, wenn ein neues Objekt erstellt oder ein vorhandenes Objekt überschrieben und eine neue Generierung dieses Objekts erstellt wird. |
Objekt gelöscht |
|
Tritt auf, wenn ein Objekt endgültig gelöscht wird. |
Objekt archiviert |
|
Tritt auf, wenn eine Liveversion eines Objekts zu einer nicht aktuellen Version wird. Weitere Informationen finden Sie unter Objektversionsverwaltung. |
Objektmetadaten aktualisiert |
|
Tritt auf, wenn sich die Metadaten eines vorhandenen Objekts ändern. |
Ein Cloud Storage-Trigger wird als CloudEvent-Funktion implementiert, bei der die Cloud Storage-Ereignisdaten im CloudEvents-Format an die Funktion übergeben werden und die CloudEvent-Datennutzlast vom Typ StorageObjectData
ist.
Das Repository Google Events enthält zusätzliche Ressourcen für die Arbeit mit Ereignisdaten.
Berechtigungen
Zur Verwendung von Cloud Storage-Triggern in Cloud Run Functions muss der Cloud Storage-Dienst-Agent die IAM-Rolle Pub/Sub Publisher (roles/pubsub.publisher
) in Ihrem Projekt haben.
Bereitstellung
Sie können einen Cloud Storage-Trigger angeben, wenn Sie eine Funktion bereitstellen. Allgemeine Anleitungen zum Bereitstellen einer Funktion finden Sie unter Cloud Run Functions-Funktionen 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:
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 nur den Bucket-Namen ohne das führende gs://
an, z. B. --trigger-event-filters="bucket=my-bucket"
.
Console
Wenn Sie die Bereitstellung mit der Google Cloud Console ausführen, können Sie einen Cloud Storage-Trigger im Abschnitt Trigger konfigurieren:
- Wählen Sie im Feld Triggertyp die Option Cloud Storage aus.
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.
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.
Aktivieren oder deaktivieren Sie das Kästchen Bei Fehler noch einmal versuchen, um zu steuern, ob Cloud Run Functions einen fehlgeschlagenen Funktionsaufruf automatisch wiederholen. Weitere Informationen finden Sie unter Ereignisgesteuerte Funktionen wiederholen.
Klicken Sie auf Weitere Optionen, um den Trigger weiter zu konfigurieren:
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 der Anleitung 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.
Klicken Sie auf Trigger speichern.
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.
Nächste Schritte
- Ereignisgesteuerte Funktionen schreiben
- Erfahren Sie mehr über das Bereitstellen einer Cloud Run Functions-Funktion.
- In der Anleitung zur Cloud Storage-Funktion finden Sie ein Beispiel für das Schreiben, Bereitstellen und Aufrufen einer Funktion mit einem Cloud Storage-Trigger.