Recevoir un événement Pub/Sub

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Ce tutoriel explique comment déployer un service Cloud Run sans authentification, qui reçoit des événements à l'aide de Pub/Sub.

Objectifs

Au cours de ce tutoriel, vous allez :

  1. Déployer un service récepteur d'événements sur Cloud Run.

  2. Créer un déclencheur d'événements.

  3. Publier un message dans un sujet Pub/Sub pour générer un événement et l'afficher dans les journaux Cloud Run.

Coûts

Ce tutoriel utilise les composants facturables suivants de Google Cloud :

Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût. Les nouveaux utilisateurs de Google Cloud peuvent bénéficier d'un essai gratuit.

Avant de commencer

  1. Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  3. Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier si la facturation est activée sur un projet.

  4. Activer les API Cloud Run, Cloud Logging, Cloud Build, Pub/Sub, Eventarc.

    Activer les API

  5. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  6. Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier si la facturation est activée sur un projet.

  7. Activer les API Cloud Run, Cloud Logging, Cloud Build, Pub/Sub, Eventarc.

    Activer les API

  8. Installez et initialisez Google Cloud CLI.
  9. Mettez à jour les composants gcloud :
    gcloud components update
  10. Connectez-vous à votre compte :
    gcloud auth login
  11. Définissez les variables de configuration utilisées dans ce tutoriel :
    gcloud config set project PROJECT_ID
    gcloud config set run/region us-central1
    gcloud config set run/platform managed
    gcloud config set eventarc/location us-central1
    
    PROJECT_ID correspond à votre ID de projet Google Cloud.

Déployer un récepteur d'événements sur Cloud Run

Déployez un service Cloud Run qui reçoit et consigne les événements.

Pour déployer l'exemple de service récepteur d'événements, procédez comme suit :

  1. Clonez le dépôt :

    Node.js

    git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git

    Vous pouvez également télécharger l'exemple en tant que fichier ZIP et l'extraire.

    Python

    git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git

    Vous pouvez également télécharger l'exemple en tant que fichier ZIP et l'extraire.

    Go

    git clone https://github.com/GoogleCloudPlatform/golang-samples.git

    Vous pouvez également télécharger l'exemple en tant que fichier ZIP et l'extraire.

    Java

    git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git

    Vous pouvez également télécharger l'exemple en tant que fichier ZIP et l'extraire.

    Ruby

    git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples.git

    Vous pouvez également télécharger l'exemple en tant que fichier ZIP et l'extraire.

    C#

    git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples.git

    Vous pouvez également télécharger l'exemple en tant que fichier ZIP et l'extraire.

  2. Accédez au répertoire contenant l'exemple de code Cloud Run :

    Node.js

    cd nodejs-docs-samples/eventarc/pubsub/

    Python

    cd python-docs-samples/eventarc/pubsub/

    Go

    cd golang-samples/eventarc/pubsub/

    Java

    cd java-docs-samples/eventarc/pubsub/

    Ruby

    cd ruby-docs-samples/eventarc/pubsub/

    C#

    cd dotnet-docs-samples/eventarc/pubsub/
  3. Créez le conteneur et importez-le dans Cloud Build :

    gcloud builds submit --tag gcr.io/$(gcloud config get-value project)/events-pubsub
    
  4. Déployez l'image de conteneur dans Cloud Run :

    gcloud run deploy helloworld-events-pubsub-tutorial \
        --image gcr.io/$(gcloud config get-value project)/events-pubsub \
        --allow-unauthenticated
    

Lorsque l'URL du service s'affiche, cela signifie que le déploiement est terminé.

Créer un déclencheur Eventarc

Le déclencheur d'événements envoie des messages au service récepteur d'événements déployé sur Cloud Run lorsqu'un message est publié dans le sujet Pub/Sub.

Pour créer un déclencheur Pub/Sub Eventarc, procédez comme suit :

  1. Créez un déclencheur pour écouter les messages Pub/Sub :

    Nouveau sujet Pub/Sub

    gcloud eventarc triggers create events-pubsub-trigger \
      --destination-run-service=helloworld-events-pubsub-tutorial \
      --destination-run-region=us-central1 \
      --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished"
    

    Cela crée un sujet Pub/Sub et un déclencheur associé nommé events-pubsub-trigger.

    Sujet Pub/Sub existant

    gcloud eventarc triggers create events-pubsub-trigger \
      --destination-run-service=helloworld-events-pubsub-tutorial \
      --destination-run-region=us-central1 \
      --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \
      --transport-topic=projects/PROJECT_ID/topics/TOPIC_NAME
    

    Remplacez l'élément suivant :

    • PROJECT_ID correspond à votre ID de projet Google Cloud.
    • TOPIC_NAME correspond au nom du sujet Pub/Sub existant.

    Cela crée un déclencheur nommé events-pubsub-trigger pour le sujet Pub/Sub existant.

  2. Vérifiez que le déclencheur a bien été créé :

    gcloud eventarc triggers list --location=us-central1
    
  3. Recherchez et définissez le sujet Pub/Sub en tant que variable d'environnement :

    export RUN_TOPIC=$(gcloud eventarc triggers describe events-pubsub-trigger \
        --format='value(transport.pubsub.topic)')
    
  4. Envoyez un message au sujet Pub/Sub pour générer un événement :

    gcloud pubsub topics publish $RUN_TOPIC --message "Runner"
    

    L'événement est envoyé au service Cloud Run, qui consigne le message d'événement.

  5. Pour afficher le message d'événement, accédez aux journaux du service Cloud Run :

    1. Accédez à Google Cloud Console.
    2. Cliquez sur le service helloworld-events-pubsub-tutorial.
    3. Sélectionnez l'onglet Journaux.

      L'affichage des journaux peut nécessiter quelques instants. S'ils n'apparaissent pas immédiatement, patientez et vérifiez de nouveau.

  6. Recherchez le message "Hello Runner!".

Nettoyer

Si vous avez créé un projet pour ce tutoriel, supprimez-le. Si vous avez utilisé un projet existant et que vous souhaitez le conserver sans les modifications du présent tutoriel, supprimez les ressources créées pour ce tutoriel.

Supprimer le projet

Le moyen le plus simple d'empêcher la facturation est de supprimer le projet que vous avez créé pour ce tutoriel.

Pour supprimer le projet :

  1. Dans la console Google Cloud, accédez à la page Gérer les ressources.

    Accéder à la page Gérer les ressources

  2. Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
  3. Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.

Supprimer les ressources du tutoriel

  1. Supprimez le service Cloud Run que vous avez déployé dans ce tutoriel :

    gcloud run services delete SERVICE_NAME

    SERVICE_NAME est le nom de service que vous avez choisi.

    Vous pouvez également supprimer des services Cloud Run à partir de Google Cloud Console.

  2. Supprimez les configurations gcloud CLI par défaut que vous avez ajoutées lors de la configuration du tutoriel.

    Exemple :

    gcloud config unset run/region

    ou

    gcloud config unset project

  3. Supprimez les autres ressources Google Cloud créées dans ce tutoriel :

    • Supprimez le déclencheur Eventarc :
      gcloud eventarc triggers delete TRIGGER_NAME
      
      Remplacez TRIGGER_NAME par le nom de votre déclencheur.

Étape suivante