In dieser Anleitung erfahren Sie, wie Sie einen nicht authentifizierten Cloud Run-Dienst bereitstellen, der mit Cloud-Audit-Logging Ereignisse aus Cloud Storage empfängt. Verwenden Sie diese Anleitung zum Bereitstellen von Produktionsarbeitslasten. Der Eventarc-Trigger filtert Ereignisse anhand von Cloud-Audit-Logging-Einträgen. Weitere Informationen finden Sie unter Ereignisfilter für Cloud-Audit-Logs ermitteln.
Sie können diese Anleitung entweder mit der Google Cloud -Konsole oder mit der Google Cloud CLI ausführen.
Artifact Registry-Standard-Repository erstellen
Erstellen Sie ein Artifact Registry-Standard-Repository zum Speichern des Docker-Container-Images:Console
- Rufen Sie in der Google Cloud Console die Seite Repositories auf.
- Klicken Sie auf Repository erstellen.
- Repository konfigurieren
- Geben Sie einen eindeutigen Namen ein.
- Wählen Sie als Format die Option Docker aus.
- Wählen Sie für Mode (Modus) die Option Standard aus.
- Wählen Sie als Standorttyp die Option Region aus.
- Wählen Sie in der Liste Region die Option us-central1 (Iowa) aus.
- Übernehmen Sie alle anderen Standardeinstellungen und klicken Sie auf Erstellen.
gcloud
gcloud artifacts repositories create REPOSITORY \ --repository-format=docker \ --location=$REGION
Ersetzen Sie REPOSITORY
durch einen eindeutigen Namen für das Artifact Registry-Repository.
Cloud Storage-Bucket erstellen
In dieser Anleitung wird Cloud Storage als Ereignisquelle verwendet. So erstellen Sie einen Storage-Bucket:
Console
- Rufen Sie in der Google Cloud Console die Seite Buckets auf.
- Klicken Sie auf Bucket erstellen.
- Geben Sie die Bucket-Informationen ein und klicken Sie zum Ausführen der einzelnen Schritte jeweils auf Weiter:
- Geben Sie einen eindeutigen Namen ein. Beispiel:
eventarcbucket
. - Wählen Sie Region als Standorttyp aus.
- Wählen Sie us-central1 (Iowa) als Standort aus.
- Wählen Sie Standard als Standardspeicherklasse aus.
- Wählen Sie unter Zugriffssteuerung die Option Einheitlich aus.
- Geben Sie einen eindeutigen Namen ein. Beispiel:
- Klicken Sie auf Erstellen.
gcloud
gcloud storage buckets create gs://events-tutorial-PROJECT_ID/ --location=$REGION
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-Dienst bereit, der Ereignisse empfängt und loggt. So stellen Sie den Beispiel-Ereignisempfängerdienst bereit:
Console
- Klonen Sie das Beispiel-Repository in Ihr GitHub-Konto:
- Rufen Sie in GitHub GoogleCloudPlatform/golang-samples auf.
- Klicken Sie auf Fork.
- Wählen Sie bei entsprechender Aufforderung den Standort für die Verzweigung des Repositorys aus.
- Rufen Sie in GitHub GoogleCloudPlatform/java-docs-samples auf.
- Klicken Sie auf Fork.
- Wählen Sie bei entsprechender Aufforderung den Standort für die Verzweigung des Repositorys aus.
- Rufen Sie in GitHub GoogleCloudPlatform/dotnet-docs-samples auf.
- Klicken Sie auf Fork.
- Wählen Sie bei entsprechender Aufforderung den Standort für die Verzweigung des Repositorys aus.
- Rufen Sie in GitHub GoogleCloudPlatform/nodejs-docs-samples auf.
- Klicken Sie auf Fork.
- Wählen Sie bei entsprechender Aufforderung den Standort für die Verzweigung des Repositorys aus.
- Rufen Sie in GitHub GoogleCloudPlatform/python-docs-samples auf.
- Klicken Sie auf Fork.
- Wählen Sie bei entsprechender Aufforderung den Standort für die Verzweigung des Repositorys aus.
- Rufen Sie in der Google Cloud Console die Seite Dienste auf.
- Klicken Sie auf Dienst erstellen, um das Formular Dienst erstellen aufzurufen.
- Wählen Sie Kontinuierlich aus einem Repository bereitstellen.
Änderungen an Ihrem GitHub-Repository werden automatisch in Container-Images in Artifact Registry eingebunden und in Cloud Run bereitgestellt.
- Klicken Sie auf Mit Cloud Build einrichten, um das Formular Mit Cloud Build einrichten zu öffnen.
- Aktivieren Sie bei entsprechender Aufforderung die Cloud Build API und die Artefaktanalyse-API.
- Wählen Sie GitHub als Repository-Anbieter aus.
- Wenn Sie dazu aufgefordert werden, klicken Sie auf Google Cloud Build installieren.
- Wählen Sie das von Ihnen verzweigte GitHub-Repository als Repository aus.
- Klicken Sie auf Weiter.
- Geben Sie im Feld Branch den Wert
^main$
ein. - Wählen Sie als Build-Typ die Option Dockerfile aus und geben Sie den Speicherort des Dockerfiles an.
eventarc/audit-storage/Dockerfile
oder
eventarc/audit_storage/Dockerfile
(Go)
- Klicken Sie auf Speichern.
- Geben Sie im Formular Dienst erstellen einen Dienstnamen ein.
Beispiel:
helloworld-events
. - Wählen Sie us-central1(Iowa) als Region für den Dienst aus.
- Wählen Sie eine der Ingress-Optionen basierend auf dem eingehenden Traffic aus, den Sie im Cloud Run-Dienst zulassen möchten.
- Wählen Sie Authentifizierung erforderlich aus.
- Klicken Sie auf Erstellen.
Go

Java

.NET

Node.js

Python

gcloud
- Klonen Sie das GitHub-Repository:
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples.git cd golang-samples/eventarc/audit_storage
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git cd java-docs-samples/eventarc/audit-storage
.NET
git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples.git cd dotnet-docs-samples/eventarc/audit-storage
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git cd nodejs-docs-samples/eventarc/audit-storage
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git cd python-docs-samples/eventarc/audit-storage
- Erstellen Sie den Container und laden Sie ihn in Cloud Build hoch:
gcloud builds submit --tag $REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY/$SERVICE_NAME:v1
- Stellen Sie das Container-Image in Cloud Run bereit:
gcloud run deploy $SERVICE_NAME \ --image $REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY/$SERVICE_NAME:v1
Geben Sie
n
ein, wenn Sie nicht authentifizierte Aufrufe zulassen möchten.Wenn die Bereitstellung erfolgreich war, wird in der Befehlszeile die Dienst-URL angezeigt.
Sie haben den Ereignisempfänger mithilfe von helloworld-events
in Cloud Run bereitgestellt. Nun können Sie einen Trigger einrichten.
Eventarc-Trigger erstellen
Der Eventarc-Trigger sendet Ereignisse aus dem Cloud Storage-Bucket an den Cloud Run-Dienst helloworld-events
.
Console
- Rufen Sie in der Google Cloud Console die Seite Trigger auf.
- Klicken Sie auf Trigger erstellen.
- Geben Sie einen Triggernamen ein.
Dies ist die ID des Triggers. Sie muss mit einem Buchstaben beginnen. Sie kann bis zu 63 Kleinbuchstaben, Ziffern oder Bindestriche enthalten.
- Wählen Sie einen Triggertyp aus:
- Eigene: Filtert Ereignisse, die von Google Cloud-Anbietern (direkt oder über Cloud-Audit-Logs) oder Anbietern mit Pub/Sub-Nachrichten gesendet werden.
- Drittanbieter: Filtert Ereignisse, die von Drittanbietern gesendet werden.
- Wählen Sie in der Liste Ereignisanbieter die Option Cloud Storage als Quelle für Ereignisse aus.
- Wählen Sie in der Liste Ereignistyp die Option storage.objects.create aus.
- Wählen Sie in der Liste Region die Option us-central1 als Region aus, von der Ereignisse empfangen werden sollen.
- Wählen Sie das von Ihnen erstellte Dienstkonto aus. Beispiel:
SERVICE_ACCOUNT_ID@PROJECT_ID
.iam.gserviceaccount.com. - Wählen Sie in der Liste Ereignisziel die Option Cloud Run aus.
- Wählen Sie in der Liste Cloud Run-Dienst auswählen die Option helloworld-events aus.
- Klicken Sie auf Erstellen. Sie können einen Eventarc-Trigger auch über die Seite der Cloud Run-Konsole erstellen.
gcloud
- Erstellen Sie einen Trigger, der Cloud Storage-Ereignisse filtert, die das von Ihnen erstellte Dienstkonto verwenden:
Ersetzen Siegcloud eventarc triggers create events-tutorial-trigger \ --destination-run-service=$SERVICE_NAME \ --destination-run-region=$REGION \ --event-filters="type=google.cloud.audit.log.v1.written" \ --event-filters="serviceName=storage.googleapis.com" \ --event-filters="methodName=storage.objects.create" \ --service-account=sample-service-account@PROJECT_ID.iam.gserviceaccount.com
PROJECT_ID
durch die Google CloudProjekt-ID.Wobei:
type
: Gibt an, dass Audit-Logs erstellt werden, wenn die Filterkriterien des Triggers erfüllt sind.serviceName
: Der Dienst, der das Audit-Log schreibt, in diesem Fall Cloud Storage.methodName
: der zu prüfende Vorgang (storage.objects.create
).
events-tutorial-trigger
erstellt. - Führen Sie diesen Befehl aus, um zu prüfen, ob
events-tutorial-trigger
erfolgreich erstellt wurde:gcloud eventarc triggers list --location=$REGION
Der Trigger
events-tutorial-trigger
wird mit dem Ziel helloworld-events
aufgeführt.
Ereignis erstellen und abrufen
- So erstellen Sie ein Ereignis:
Console
- Erstellen Sie eine Textdatei mit dem Dateinamen
random.txt
und dem Text „Hello World“. - Rufen Sie in der Google Cloud Console die Seite Buckets auf.
- Wählen Sie den von Ihnen erstellten Storage-Bucket aus.
- Klicken Sie auf dem Tab Objekte auf Dateien hochladen und laden Sie die Datei
random.txt
hoch.
gcloud
Laden Sie eine Datei in Cloud Storage hoch:
echo "Hello World" > random.txt gcloud storage cp random.txt gs://events-tutorial-PROJECT_ID/random.txt
- Erstellen Sie eine Textdatei mit dem Dateinamen
- So rufen Sie den Logeintrag auf:
- Rufen Sie in der Google Cloud Console die Seite Dienste auf.
- Klicken Sie in der Liste der Dienste auf den Namen des erstellten Dienstes, um die zugehörige Seite Dienstdetails aufzurufen.
- Klicken Sie auf den Tab Logs, um die Anfrage- und Containerlogs für alle Überarbeitungen des Dienstes abzurufen. Sie können nach Logschweregrad filtern.
- Suchen Sie nach einem Logeintrag wie dem folgenden:
Dabei istDetected change in Cloud Storage bucket: storage.googleapis.com/projects/_/buckets/BUCKET_NAME/objects/random.txt
BUCKET_NAME
der Name des Cloud Storage-Buckets. -
gcloud logging read "resource.labels.service_name=helloworld-events AND textPayload:random.txt" --format=json
- Suchen Sie nach einem Logeintrag wie dem folgenden:
Dabei istDetected change in Cloud Storage bucket: storage.googleapis.com/projects/_/buckets/BUCKET_NAME/objects/random.txt
BUCKET_NAME
der Name des Cloud Storage-Buckets.
Console
gcloud
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.