Recevoir des événements à partir de Pub/Sub

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 :

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

    CLOUD_RUN_CONTAINER_FILENAME est le nom de fichier de votre conteneur.

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

    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

  1. Créez un sujet Pub/Sub

    gcloud pubsub topics create TOPIC_NAME
    
  2. 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
    

    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.

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

    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

  1. Publiez un message sur le sujet Pub/Sub :

    gcloud pubsub topics publish TOPIC_NAME \
      --message "World"
    
  2. 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
    

    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.

  1. Supprimez le déclencheur en saisissant la commande suivante :

    gcloud beta events triggers delete TRIGGER-NAME \
        --namespace NAMESPACE
    

    NAMESPACE est le même espace de noms que celui de votre agent d'événements.