Découvrez comment déployer un service dans Cloud Run pour Anthos sur Google Cloud, puis créer et envoyer des événements à ce service à partir de Pub/Sub.
Avant de commencer
Pour effectuer cette tâche, vous devez disposer d'un agent d'événements et savoir dans quel espace de noms il s'exécute. Découvrez comment configurer des événements pour Cloud Run pour Anthos et créer un agent d'événements.
Si vous disposez d'un agent d'événements en cours d'exécution, vous pouvez afficher l'espace de noms Kubernetes en exécutant la commande suivante :
kubectl get brokers -n NAMESPACE
Déployer un service de récepteur d'événements Cloud Run pour Anthos
Déployez un service Cloud Run pour Anthos qui reçoit les événements de l'agent d'événements.
Pour déployer le service Cloud Run pour Anthos, procédez comme suit :
Clonez le dépôt :
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
Créez le conteneur et importez-le dans Cloud Build :
gcloud builds submit \ --tag gcr.io/$(gcloud config get-value project)/CLOUD_RUN_CONTAINER_FILENAME
où CLOUD_RUN_CONTAINER_FILENAME est le nom de fichier de votre conteneur.
Déployez l'image de conteneur dans Cloud Run pour Anthos :
gcloud run deploy CLOUD_RUN_SERVICE_NAME \ --namespace=NAMESPACE \ --image gcr.io/$(gcloud config get-value project)/CLOUD_RUN_CONTAINER_NAME
où NAMESPACE est le même espace de noms que celui de votre agent d'événements.
Lorsque l'URL du service s'affiche, cela signifie que le déploiement a réussi.
Créer un déclencheur pour Pub/Sub
Créez un sujet Pub/Sub
gcloud pubsub topics create TOPIC_NAME
Créez un déclencheur avec les options
--parameters topic=
TOPIC_NAME et--target-service=
CLOUD_RUN_SERVICE_NAME :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
où NAMESPACE correspond au même espace de noms que celui de votre agent d'événements, TOPIC-NAME correspond au nom du sujet Pub/Sub que vous avez créé, et CLOUD_RUN_SERVICE_NAME au nom du service récepteur d'événements sur Cloud Run pour Anthos.
Facultatif : Vérifiez que le déclencheur est opérationnel à l'aide de l'outil de ligne de commande
gcloud
:gcloud beta events triggers list \ --target-service 'CLOUD_RUN_SERVICE_NAME' \ --namespace NAMESPACE
où NAMESPACE est le même espace de noms que celui de votre agent d'événements.
Le résultat ressemble à ce qui suit :
TRIGGER EVENT TYPE TARGET trigger-name google.cloud.pubsub.topic.v1.messagePublished cloud-run-service
Générer un événement
Publiez un message sur le sujet Pub/Sub :
gcloud pubsub topics publish TOPIC_NAME \ --message "World"
Vérifiez l'événement publié en consultant les journaux du service destinataire Cloud Run pour Anthos :
kubectl logs \ --selector serving.knative.dev/service=CLOUD_RUN_SERVICE_NAME \ -c user-container \ -n NAMESPACE \ --tail=100
où NAMESPACE est le même espace de noms que celui de votre agent d'événements.
Dans les journaux, vous trouverez une entrée semblable à ceci :
Hello World! ID: 961750303502725
Nettoyer
Supprimez les ressources créées dans ce tutoriel pour éviter des frais récurrents.
Supprimez le déclencheur en saisissant la commande suivante :
gcloud beta events triggers delete TRIGGER-NAME \ --namespace NAMESPACE
où NAMESPACE est le même espace de noms que celui de votre agent d'événements.