Im Folgenden wird gezeigt, wie Sie einen Cloud Run for Anthos-Dienst in Google Cloud bereitstellen und dann mit Pub/Sub Ereignisse erstellen und an diesen Dienst senden.
Vorbereitung
Zum Ausführen dieser Aufgabe benötigen Sie einen Ereignis-Broker und Sie müssen wissen, in welchem Namespace er ausgeführt wird. Lesen Sie hier, wie Sie Events for Cloud Run for Anthos konfigurieren und einen Ereignis-Broker erstellen.
Wenn ein Ereignis-Broker ausgeführt wird, können Sie den Kubernetes-Namespace mit folgendem Befehl aufrufen:
kubectl get brokers -n NAMESPACE
Cloud Run for Anthos-Dienst zum Empfangen von Ereignissen bereitstellen
Stellen Sie einen Cloud Run for Anthos-Dienst bereit, der Ereignisse vom Ereignis-Broker empfängt.
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/pubsub
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git cd java-docs-samples/eventarc/pubsub
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples.git cd golang-samples/eventarc/pubsub
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git cd nodejs-docs-samples/eventarc/pubsub
C#
git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples.git cd dotnet-docs-samples/eventarc/pubsub
Erstellen Sie den Container und laden Sie ihn in Cloud Build hoch:
gcloud builds submit \ --tag gcr.io/$(gcloud config get-value project)/CLOUD_RUN_CONTAINER_FILENAME
Dabei ist CLOUD_RUN_CONTAINER_FILENAME der Dateiname Ihres Containers.
Stellen Sie das Container-Image für Cloud Run for Anthos bereit:
gcloud run deploy CLOUD_RUN_SERVICE_NAME \ --namespace=NAMESPACE \ --image gcr.io/$(gcloud config get-value project)/CLOUD_RUN_CONTAINER_NAME
Dabei ist NAMESPACE derselbe Namespace wie für Ihren Ereignis-Broker.
Wenn die Dienst-URL angezeigt wird, wurde sie erfolgreich bereitgestellt.
Trigger für Pub/Sub erstellen
Pub/Sub-Thema erstellen
gcloud pubsub topics create TOPIC_NAME
Erstellen Sie mit
--parameters topic=
TOPIC_NAME und--target-service=
CLOUD_RUN_SERVICE_NAME einen Trigger:gcloud beta events triggers create TRIGGER_NAME \ --namespace NAMESPACE \ --target-service=CLOUD_RUN_SERVICE_NAME \ --type=google.cloud.pubsub.topic.v1.messagePublished \ --source=CloudPubSubSource \ --parameters topic=TOPIC_NAME
Dabei ist NAMESPACE derselbe Namespace wie für Ihren Ereignis-Broker. TOPIC-NAME ist der Name des von Ihnen erstellten Pub/Sub-Themas und CLOUD_RUN_SERVICE_NAME ist der Name des Dienstes zum Empfangen von Ereignissen in Cloud Run for Anthos.
Optional: Überprüfen Sie mit dem
gcloud
-Befehlszeilentool, ob der Trigger betriebsbereit ist:gcloud beta events triggers list \ --target-service 'CLOUD_RUN_SERVICE_NAME' \ --namespace NAMESPACE
Dabei ist NAMESPACE derselbe Namespace wie für Ihren Ereignis-Broker.
Die Ausgabe sieht etwa so aus:
TRIGGER EVENT TYPE TARGET trigger-name google.cloud.pubsub.topic.v1.messagePublished cloud-run-service
Ereignis generieren
Veröffentlichen Sie eine Nachricht im Pub/Sub-Thema:
gcloud pubsub topics publish TOPIC_NAME \ --message "World"
Überprüfen Sie das veröffentlichte Ereignis anhand der Logs des empfangenden Cloud Run for Anthos-Dienstes:
kubectl logs \ --selector serving.knative.dev/service=CLOUD_RUN_SERVICE_NAME \ -c user-container \ -n NAMESPACE \ --tail=100
Dabei ist NAMESPACE derselbe Namespace wie für Ihren Ereignis-Broker.
Die Logs enthalten einen Eintrag, der in etwa so aussieht:
Hello World! ID: 961750303502725
Bereinigen
Löschen Sie die in dieser Anleitung erstellten Ressourcen, um wiederkehrende Gebühren zu vermeiden.
Löschen Sie den Trigger. Geben Sie dazu Folgendes ein:
gcloud beta events triggers delete TRIGGER-NAME \ --namespace NAMESPACE
Dabei ist NAMESPACE derselbe Namespace wie für Ihren Ereignis-Broker.