Auf dieser Seite wird beschrieben, wie Sie Ereignisse für Cloud Run for Anthos einrichten und Ereignisse aus Cloud Storage empfangen.
In dieser Kurzanleitung werden folgende Schritte erläutert:
- GKE-Cluster erstellen und Cloud Run for Anthos in Google Cloud aktivieren
- Ereignisse für Cloud Run for Anthos initialisieren
- Ereignis-Broker erstellen, um Ereignisse von der Quelle an den Empfänger weiterzuleiten
- Cloud Run for Anthos-Dienst bereitstellen, der Ereignisse empfängt
- Cloud Storage zum Erstellen von Ereignissen einrichten
- Ereignis erstellen und abrufen
Vorbereitung
-
Melden Sie sich bei Ihrem Google-Konto an.
Wenn Sie noch kein Konto haben, melden Sie sich hier für ein neues Konto an.
-
Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
-
Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für Ihr Projekt aktiviert ist.
- Installieren und initialisieren Sie das Cloud SDK.
- Achten Sie darauf, dass Sie die neueste Version des
gcloud
-Befehlszeilentools verwenden. - Legen Sie das
gcloud
-Befehlszeilentool für die Verwendung Ihres GCP-Projekts fest:gcloud config set project PROJECT-ID
- Installieren Sie die Betakomponenten des
gcloud
-Befehlszeilentools:gcloud components install beta
- Aktivieren Sie die in dieser Kurzanleitung verwendeten Dienste:
gcloud services enable cloudapis.googleapis.com gcloud services enable container.googleapis.com gcloud services enable containerregistry.googleapis.com gcloud services enable cloudbuild.googleapis.com
- Legen Sie die Konfigurationsvariablen des
gcloud
-Befehlszeilentools fest:gcloud config set run/cluster events-cluster gcloud config set run/cluster_location us-central1 gcloud config set run/platform gke
- Optional: Sie können die Konfigurationseinstellungen mit dem
gcloud
-Befehlszeilentool prüfen. Geben Sie dazu Folgendes ein:gcloud config list
Die Ausgabe sieht etwa so aus:
[run] cluster = events-cluster cluster_location = us-central1 platform = gke
GKE-Cluster mit aktiviertem Cloud Run for Anthos erstellen
Erstellen Sie einen Google Kubernetes Engine-Cluster für Cloud Run for Anthos mit den aktivierten Add-ons
CloudRun
,HttpLoadBalancing
undHorizontalPodAutoscaling
:gcloud beta container clusters create events-cluster \ --addons=HttpLoadBalancing,HorizontalPodAutoscaling,CloudRun \ --machine-type=n1-standard-4 \ --enable-autoscaling --min-nodes=3 --max-nodes=10 \ --no-issue-client-certificate --num-nodes=3 --image-type=cos \ --enable-stackdriver-kubernetes \ --scopes=cloud-platform,logging-write,monitoring-write,pubsub \ --zone us-central1 \ --release-channel=stable
Warten Sie einige Minuten, bis der Cluster erstellt ist. Während der Erstellung werden möglicherweise Warnmeldungen angezeigt, die Sie ignorieren können. Wenn der Cluster erstellt ist, sieht die Ausgabe in etwa so aus:
Creating cluster events-cluster...done. Created [https://container.googleapis.com/v1beta1/ \ projects/my-project/zones/us-central1/clusters/events-cluster].
Dabei ist
my-project
Ihre Projekt-ID. Sie haben soeben einen neuen Google Kubernetes Engine-Cluster namensevents-cluster
im Projektmy-project
erstellt.
Events for Cloud Run for Anthos initialisieren
So initialisieren Sie Events for Cloud Run for Anthos:
Initialisieren Sie Events for Cloud Run for Anthos mithilfe des
gcloud
-Befehlszeilentools:gcloud beta events init --platform gke
Wenn Sie dazu aufgefordert werden, wählen Sie
events-cluster
als GKE-Cluster aus.Geben Sie bei allen Aufforderungen zum Erstellen von Dienstkonten
Y
ein, verknüpfen Sie die Konten mit bestimmten Rollen, generieren Sie neue Schlüssel und aktivieren Sie die erforderlichen Dienste.
Dadurch werden Pods in den zwei Kubernetes-Namespaces
cloud-run-events
undknative-eventing
erstellt.Optional: Prüfen Sie, ob der Pod erfolgreich erstellt wurde:
kubectl get pods -n cloud-run-events
Die Ausgabe sieht etwa so aus:
NAME READY STATUS RESTARTS AGE controller-9cc679b67-2952n 1/1 Running 0 22s webhook-8576c4cfcb-dhz82 1/1 Running 0 16m
Geben Sie Folgendes ein, um den Namespace
knative-eventing
der Pods zu prüfen:kubectl get pods -n knative-eventing
Die Ausgabe sieht etwa so aus:
NAME READY STATUS RESTARTS AGE eventing-controller-77f46f6cf8-kj9ck 1/1 Running 0 17m eventing-webhook-5bc787965f-hcmwg 1/1 Running 0 17m
Ereignis-Broker erstellen
Bei Ereignissen für Cloud Run for Anthos leiten Broker die Ereignisse von der Quelle an einen Zieldienst weiter. In dieser Kurzanleitung erstellen Sie einen Broker, der Ereignisse von Cloud Storage an einen Cloud Run for Anthos-Dienst weiterleitet.
So erstellen Sie einen Broker:
Erstellen Sie einen
events
-Namespace:kubectl create namespace events
Initialisieren Sie den Namespace mit dem Standard-Secret:
gcloud beta events namespaces init events \ --copy-default-secret
Erstellen Sie den Ereignis-Broker:
gcloud beta events brokers create default \ --namespace events
Optional: Nach einigen Minuten können Sie den Status des Brokers prüfen:
kubectl get brokers \ -n events
Cloud Run for Anthos-Dienst zum Empfang von Ereignissen bereitstellen
Stellen Sie einen Cloud Run for Anthos-Dienst bereit, der Ereignisse vom Broker empfängt und protokolliert.
So stellen Sie den Cloud Run for Anthos-Dienst bereit:
Klonen Sie das Repository:
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git cd python-docs-samples/eventarc/audit-storage
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git cd java-docs-samples/eventarc/audit-storage
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples.git cd golang-samples/eventarc/audit_storage
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git cd nodejs-docs-samples/eventarc/audit-storage
C#
git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples.git cd dotnet-docs-samples/eventarc/audit-storage
Erstellen Sie den Container und laden Sie ihn in Cloud Build hoch:
gcloud builds submit \ --tag gcr.io/$(gcloud config get-value project)/events-quickstart-container
Stellen Sie das Container-Image für Cloud Run for Anthos bereit:
gcloud run deploy events-quickstart-receiver \ --namespace=events \ --image gcr.io/$(gcloud config get-value project)/events-quickstart-container
Wenn die Dienst-URL angezeigt wird, wurde sie erfolgreich bereitgestellt.
Cloud Storage einrichten
Wenn Änderungen am Storage-Bucket vorgenommen wurden, erstellt Cloud Storage Ereignisse und sendet sie an den Ereignis-Broker. So richten Sie Cloud Storage ein:
Erstellen Sie mit dem
gsutil
-Befehlszeilentool einen Cloud Storage-Bucket:gsutil mb \ -p $(gcloud config get-value project) \ -l us-central1 \ gs://"events-quickstart-$(gcloud config get-value project)"
In diesem Beispiel wird der Cloud Storage-Bucket in der Region us-central1 erstellt.
Rufen Sie das Cloud Storage-Dienstkonto auf:
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/projects/$(gcloud config get-value project)/serviceAccount"
Gewähren Sie dem Cloud Storage-Dienstkonto die Veröffentlichungsrechte für Pub/Sub:
gcloud projects add-iam-policy-binding $(gcloud config get-value project) \ --member=serviceAccount:CLOUD-STORAGE-SERVICE-ACCOUNT \ --role roles/pubsub.publisher
Cloud Storage-Trigger erstellen
Beim Erstellen eines Triggers müssen Sie den Cloud Run for Anthos-Dienst angeben, der Ereignisse von Cloud Storage empfängt.
Erstellen Sie den Cloud Storage-Trigger:
gcloud beta events triggers create trigger-storage \ --namespace events \ --target-service events-quickstart-receiver \ --type=google.cloud.storage.object.v1.finalized \ --parameters bucket=events-quickstart-$(gcloud config get-value project)
Dadurch wird ein Trigger für den Cloud Storage-Bucket
events-quickstart-bucket
erstellt.Optional: Sie können den Status des Triggers prüfen. Führen Sie dazu folgenden Befehl aus:
gcloud beta events triggers list \ --namespace=events
Nach dem Erstellen des Triggers kann es bis zu 10 Minuten dauern kann, bis er betriebsbereit ist und Cloud Storage-Ereignisse filtert.
Ereignisse erstellen und ansehen
Erstellen Sie eine Textdatei mit dem Namen
random.txt
, die den Text „Hello World“ enthält, und laden Sie sie mithilfe desgsutil
-Befehlszeilentools in Cloud Storage hoch.echo "Hello World" > random.txt gsutil cp random.txt gs://events-quickstart-$(gcloud config get-value project)/random.txt
Ihr Upload generiert ein Ereignis und der Cloud Run for Anthos-Dienst protokolliert die Nachricht des Ereignisses.
So rufen Sie die Nachricht in Cloud Logging auf:
Glückwunsch! Sie haben Ereignisse für Cloud Run for Anthos bereitgestellt, ein Ereignis ausgelöst und dessen Inhalt protokolliert.
Bereinigen
Löschen Sie das Projekt, um die Abrechnung für alle in Ihrem Cloud-Testprojekt verwendeten Ressourcen zu beenden:
- Wechseln Sie in der 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.