Direkte Ereignisse von Cloud Storage erhalten (Google Cloud Console)
In dieser Kurzanleitung erfahren Sie, wie Sie direkte Ereignisse von Cloud Storage in einem Cloud Run-Dienst empfangen, der öffentlichen Zugriff erlaubt.
Sie können das Auslösen von Benachrichtigungen als Reaktion auf verschiedene Ereignisse innerhalb eines Cloud Storage-Buckets konfigurieren: Objekterstellung, Löschen, Archivieren und Aktualisieren von Metadaten. Weitere Informationen finden Sie unter Trigger zum Weiterleiten von Cloud Storage-Ereignissen an Cloud Run erstellen.
Sie können diese Kurzanleitung mit der Google Cloud Console ausführen. Eine Anleitung zur Verwendung der Google Cloud CLI finden Sie unter Direkte Ereignisse von Cloud Storage erhalten (gcloud CLI).
In dieser Kurzanleitung werden folgende Schritte erläutert:
Cloud Storage-Bucket als Ereignisquelle erstellen
Beispieldienst in Cloud Run bereitstellen, um Ereignisse zu empfangen
einen Eventarc-Trigger erstellen, um Ereignisse zu filtern und weiterzuleiten
Laden Sie eine Datei in den Cloud Storage-Bucket hoch, um ein Ereignis zu erstellen und es in den Cloud Run-Logs aufzurufen.
Eine detaillierte Anleitung dazu finden Sie direkt in der Google Cloud Console. Klicken Sie dazu einfach auf Anleitung:
Vorbereitung
Von Ihrer Organisation definierte Sicherheitsbeschränkungen verhindern möglicherweise, dass die folgenden Schritte ausgeführt werden. Informationen zur Fehlerbehebung finden Sie unter Anwendungen in einer eingeschränkten Google Cloud Umgebung entwickeln.
- Melden Sie sich in Ihrem Google Cloud Konto an. Wenn Sie noch kein Google Cloud-Nutzer sind, erstellen Sie ein Konto, um zu sehen, wie sich unsere Produkte in realen Szenarien schlagen. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Build and Eventarc APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Build and Eventarc APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Ausführen der Kurzanleitung benötigen:
-
Cloud Run-Administrator (
roles/run.admin) -
Eventarc Admin (
roles/eventarc.admin) -
Logs Viewer (
roles/logging.viewer) -
Projekt-IAM-Administrator (
roles/resourcemanager.projectIamAdmin) -
Service Account User (
roles/iam.serviceAccountUser) -
Storage-Administrator (
roles/storage.admin)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Cloud Storage-Bucket erstellen
In dieser Kurzanleitung wird Cloud Storage als Ereignisquelle verwendet.Rufen Sie in der Google Cloud Console die Seite Cloud Storage > Übersicht auf.
Klicken Sie auf Bucket erstellen.
Geben Sie einen eindeutigen Namen für den Bucket ein.
Beispiel:
hello-bucket.Klicken Sie auf Weiter.
Wählen Sie als Standorttyp die Option Region und dann us-central1 (Iowa) aus.
Übernehmen Sie die anderen Standardeinstellungen.
Klicken Sie auf Erstellen.
Nachdem die Ereignisquelle erstellt wurde, können Sie den Ereignisempfängerdienst in Cloud Run bereitstellen.
Dienst zum Empfangen von Ereignissen in Cloud Run bereitstellen
Stellen Sie einen Cloud Run-Beispieldienst bereit, der Ereignisse empfängt und loggt.
Rufen Sie in der Google Cloud Console die Seite Cloud Run > Dienste auf.
Klicken Sie auf Container bereitstellen.
Im Formular Dienst erstellen:
Wählen Sie Überarbeitung aus dem vorhandenen Container-Image bereitstellen.
Klicken Sie auf Test mit einem Beispiel-Container.
Wählen Sie in der Liste Region als Standort des Dienstes us-central1 (Iowa) aus.
Wählen Sie unter Authentifizierung die Option Öffentlichen Zugriff erlauben aus.
Übernehmen Sie die anderen Standardeinstellungen.
Klicken Sie auf Erstellen, um das Beispiel-Container-Image bereitzustellen.
Die Bereitstellung des hello-Dienstes kann bis zu zwei Minuten dauern.
Eventarc-Trigger erstellen
Der Eventarc-Trigger sendet Ereignisse aus dem Cloud Storage-Bucket an den Cloud Run-Beispieldienst.Rufen Sie in der Google Cloud Console die Seite Eventarc > Trigger auf.
Klicken Sie auf Trigger erstellen.
Geben Sie einen Triggernamen ein.
Beispiel:
hello-trigger.Wählen Sie in der Liste Triggertyp die Option Google-Quellen aus.
Diese Option filtert Ereignisse, die von Google Cloud Anbietern (direkt oder über Cloud-Audit-Logs) oder Anbietern mit Pub/Sub Nachrichten gesendet werden.
Wählen Sie im Feld Ereignisanbieter die Option Cloud Storage aus.
Wählen Sie in der Liste Ereignis die Option Direkt > google.cloud.storage.object.v1.finalized aus.
Wählen Sie unter Bucket den zuvor erstellten Cloud Storage Bucket hello-bucket aus.
Gewähren Sie bei Aufforderung die folgenden Rollen:
- Ersteller von Dienstkonto-Token
(
roles/iam.serviceAccountTokenCreator) für das Pub/Sub-Dienstkonto - Eventarc-Ereignisempfänger
(
roles/eventarc.eventReceiver) für das Compute-Standarddienstkonto - Pub/Sub-Publisher
(
roles/pubsub.publisher) für das Cloud Storage-Dienstkonto
- Ersteller von Dienstkonto-Token
(
Verwenden Sie das Compute-Standarddienstkonto als Dienstkonto, das Ihren Dienst aufruft.
Wählen Sie in der Liste Ereignisziel die Option Cloud Run aus.
Wählen Sie unter Cloud Run-Dienst den zuvor erstellten Beispieldienst hello aus.
Übernehmen Sie die anderen Standardeinstellungen.
Klicken Sie auf Erstellen.
Es kann einige Minuten dauern, bis alle erforderlichen Berechtigungen an den Eventarc-Dienst-Agent weitergegeben wurden. Wenn Sie den Fehler Permission denied
while using the Eventarc Service Agent erhalten, warten Sie einige Minuten und versuchen Sie es dann noch einmal. Nachdem ein Trigger erstellt wurde, kann es bis zu zwei Minuten dauern, bis er voll funktionsfähig ist.
Ereignis erstellen und abrufen
Generieren Sie ein Ereignis und prüfen Sie, ob der Eventarc-Trigger wie erwartet funktioniert.
So erstellen Sie ein Ereignis:
Erstellen Sie eine Textdatei mit dem Dateinamen
random.txtund dem Text „Hello World“.Wechseln Sie in derCOMMENTConsole zur Seite Cloud Storage > Buckets.
Klicken Sie auf den Namen des Storage-Buckets, den Sie erstellt haben.
Klicken Sie auf dem Tab Objekte auf Dateien hochladen und laden Sie die Datei
random.txthoch.
Beim Upload wird ein Ereignis erstellt und der Cloud Run-Dienst loggt die Nachricht des Ereignisses.
So rufen Sie den Logeintrag auf:
Rufen Sie in der Google Cloud Console die Seite Cloud Run > Dienste auf.
Klicken Sie auf den Namen des Dienstes, den Sie erstellt haben.
Klicken Sie auf der Seite Dienstdetails auf den Tab Logs, um die Logeinträge für alle Überarbeitungen dieses Dienstes abzurufen. Sie können nach Logschweregrad filtern.
Suchen Sie nach einem Logeintrag wie dem folgenden:
Received event of type google.cloud.storage.object.v1.finalized. Event data: [...]
Das wars! Sie haben einen Ereignisempfängerdienst in Cloud Run erfolgreich bereitgestellt, einen Eventarc-Trigger erstellt sowie ein Ereignis aus Cloud Storage generiert und in den Cloud Run-Logs angesehen.
Bereinigen
Mit den folgenden Schritten vermeiden Sie, dass Ihrem Google Cloud -Konto die auf dieser Seite verwendeten Ressourcen in Rechnung gestellt werden:
Während für Cloud Run keine Kosten anfallen, wenn der Dienst nicht verwendet wird, wird Ihnen dennoch das Speichern des Container-Images in Artifact Registry möglicherweise in Rechnung gestellt.- Speichern des Container-Images in Artifact Registry
- Cloud Run-Ressourcen
- Speichern von Dateien in Ihrem Cloud Storage-Bucket
Sie können Ihr Image löschen, Ihren Storage-Bucket löschen, und Ihren Cloud Run-Dienst löschen.
So löschen Sie den Eventarc-Trigger:
Rufen Sie in der Google Cloud Console die Seite Eventarc > Trigger auf.
Klicken Sie auf den Namen des Triggers, den Sie erstellt haben.
Klicken Sie auf der Seite Triggerdetails auf Löschen.
Alternativ können Sie Ihr Google Cloud Projekt löschen, um wiederkehrende Gebühren zu vermeiden. Durch das Löschen des Google Cloud Projekts wird die Abrechnung für alle in diesem Projekt verwendeten Ressourcen beendet.
- Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten.
- Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
- Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.