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 :
Déployer un service récepteur d'événements sur Cloud Run.
Créer un déclencheur d'événements.
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.
Avant de commencer
- 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.
-
Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.
-
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.
-
Activer les API Cloud Run, Cloud Logging, Cloud Build, Pub/Sub, Eventarc.
-
Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.
-
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.
-
Activer les API Cloud Run, Cloud Logging, Cloud Build, Pub/Sub, Eventarc.
- Installez et initialisez Google Cloud CLI.
- Mettez à jour les composants gcloud :
gcloud components update
- Connectez-vous à votre compte :
gcloud auth login
- 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
Où 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 :
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.
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/
Créez le conteneur et importez-le dans Cloud Build :
gcloud builds submit --tag gcr.io/$(gcloud config get-value project)/events-pubsub
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 :
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.Vérifiez que le déclencheur a bien été créé :
gcloud eventarc triggers list --location=us-central1
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)')
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.
Pour afficher le message d'événement, accédez aux journaux du service Cloud Run :
- Accédez à Google Cloud Console.
- Cliquez sur le service
helloworld-events-pubsub-tutorial
. 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.
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 :
- Dans la console Google Cloud, accédez à la page Gérer les ressources.
- Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
- 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
Supprimez le service Cloud Run que vous avez déployé dans ce tutoriel :
gcloud run services delete SERVICE_NAME
Où
SERVICE_NAME
est le nom de service que vous avez choisi.Vous pouvez également supprimer des services Cloud Run à partir de Google Cloud Console.
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
Supprimez les autres ressources Google Cloud créées dans ce tutoriel :
- Supprimez le déclencheur Eventarc :
gcloud eventarc triggers delete TRIGGER_NAME
RemplacezTRIGGER_NAME
par le nom de votre déclencheur.
- Supprimez l'image de conteneur nommée
gcr.io/PROJECT_ID/events-pubsub
de Container Registry.
- Supprimez le déclencheur Eventarc :