Ereignisse für Cloud Run for Anthos

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:

  1. GKE-Cluster erstellen und Cloud Run for Anthos in Google Cloud aktivieren
  2. Ereignisse für Cloud Run for Anthos initialisieren
  3. Ereignis-Broker erstellen, um Ereignisse von der Quelle an den Empfänger weiterzuleiten
  4. Cloud Run for Anthos-Dienst bereitstellen, der Ereignisse empfängt
  5. Cloud Storage zum Erstellen von Ereignissen einrichten
  6. Ereignis erstellen und abrufen

Vorbereitung

  1. Melden Sie sich bei Ihrem Google-Konto an.

    Wenn Sie noch kein Konto haben, melden Sie sich hier für ein neues Konto an.

  2. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  3. Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für Ihr Projekt aktiviert ist.

  4. Installieren und initialisieren Sie das Cloud SDK.
  5. Achten Sie darauf, dass Sie die neueste Version des gcloud-Befehlszeilentools verwenden.
  6. Legen Sie das gcloud-Befehlszeilentool für die Verwendung Ihres GCP-Projekts fest:

    gcloud config set project PROJECT-ID
    

  7. Installieren Sie die Betakomponenten des gcloud-Befehlszeilentools:

    gcloud components install beta
    

  8. 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
    
  9. 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
    

  10. 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

  1. Erstellen Sie einen Google Kubernetes Engine-Cluster für Cloud Run for Anthos mit den aktivierten Add-ons CloudRun, HttpLoadBalancing und HorizontalPodAutoscaling:

    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
    
  2. 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 namens events-cluster im Projekt my-project erstellt.

Events for Cloud Run for Anthos initialisieren

So initialisieren Sie Events for Cloud Run for Anthos:

  1. Initialisieren Sie Events for Cloud Run for Anthos mithilfe des gcloud-Befehlszeilentools:

    gcloud beta events init --platform gke
    
    1. Wenn Sie dazu aufgefordert werden, wählen Sie events-cluster als GKE-Cluster aus.

    2. 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 und knative-eventing erstellt.

  2. 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:

  1. Erstellen Sie einen events-Namespace:

    kubectl create namespace events
    
  2. Initialisieren Sie den Namespace mit dem Standard-Secret:

    gcloud beta events namespaces init events \
      --copy-default-secret
    
  3. Erstellen Sie den Ereignis-Broker:

    gcloud beta events brokers create default \
      --namespace events
    
  4. 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:

  1. 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
    
  2. 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
    
  3. 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:

  1. 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.

  2. 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"
    
  3. 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.

  1. 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.

  2. Optional: Sie können den Status des Triggers prüfen. Führen Sie dazu folgenden Befehl aus:

    gcloud beta events triggers list \
      --namespace=events
    
  3. 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

  1. Erstellen Sie eine Textdatei mit dem Namen random.txt, die den Text „Hello World“ enthält, und laden Sie sie mithilfe des gsutil-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.

  2. So rufen Sie die Nachricht in Cloud Logging auf:

    Loganzeige aufrufen

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:

  1. Wechseln Sie in der Cloud Console zur Seite Ressourcen verwalten.

    Zur Seite „Ressourcen verwalten“

  2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
  3. Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.

Weitere Informationen