Ce tutoriel simple montre comment rédiger, déployer et déclencher une fonction Cloud basée sur des événements avec un déclencheur Cloud Pub/Sub.
Si vous débutez avec Pub/Sub et souhaitez en savoir plus, consultez la documentation correspondante, en particulier la gestion des sujets et des abonnements. Pour obtenir une présentation de l'utilisation des sujets et abonnements Pub/Sub dans Cloud Functions, consultez la page Déclencheurs Google Cloud Pub/Sub.
Si vous recherchez des exemples de code d'utilisation de Pub/Sub, consultez l'exemple de navigateur Google Cloud.
Objectifs
- Rédiger et déployer une fonction Cloud basée sur des événements
- Déclencher une fonction en publiant un message dans un sujet Pub/Sub
Coûts
Ce tutoriel utilise les composants facturables suivants de Google Cloud :
- Cloud Functions
- Pub/Sub
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 Functions and Cloud Pub/Sub.
- Installez et initialisez Google Cloud CLI.
-
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 Functions and Cloud Pub/Sub.
- Installez et initialisez Google Cloud CLI.
- Préparez votre environnement de développement.
Node.js
Python
Go
Java
C#
Ruby
PHP
Si gcloud CLI est déjà installé, mettez-le à jour en exécutant la commande suivante :
gcloud components update
Préparer l'application
Clonez le dépôt de l'exemple d'application sur votre ordinateur local :
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.
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.
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.
PHP
git clone https://github.com/GoogleCloudPlatform/php-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 Functions permettant d'accéder à Pub/Sub :
Node.js
cd nodejs-docs-samples/functions/helloworld/
Python
cd python-docs-samples/functions/helloworld/
Go
cd golang-samples/functions/helloworld/
Java
cd java-docs-samples/functions/helloworld/hello-pubsub/
C#
cd dotnet-docs-samples/functions/helloworld/HelloPubSub/
Ruby
cd ruby-docs-samples/functions/helloworld/pubsub/
PHP
cd php-docs-samples/functions/helloworld_pubsub/
Consultez l'exemple de code :
Node.js
Python
Go
Java
C#
Ruby
PHP
Déployer la fonction
Pour déployer la fonction avec un déclencheur Cloud Pub/Sub, exécutez la commande suivante dans le répertoire contenant l'exemple de code (ou, dans le cas de Java, le fichier pom.xml
) :
Node.js
gcloud functions deploy helloPubSub \ --runtime nodejs16 \Vous pouvez attribuer les valeurs suivantes à l'option
--trigger-topic YOUR_TOPIC_NAME
--runtime
, afin de spécifier votre version préférée de Node.js : nodejs16
(recommandé)nodejs14
nodejs12
nodejs10
Python
gcloud functions deploy hello_pubsub \ --runtime python39 \Vous pouvez attribuer les valeurs suivantes à l'option
--trigger-topic YOUR_TOPIC_NAME
--runtime
, afin de spécifier votre version préférée de Python :python39
(recommandé)python38
python37
Go
gcloud functions deploy HelloPubSub \ --runtime go116 \Vous pouvez attribuer les valeurs suivantes à l'option
--trigger-topic YOUR_TOPIC_NAME
--runtime
, afin de spécifier votre version préférée de Go : go116
(recommandé)go113
go111
Java
gcloud functions deploy java-pubsub-function \ --entry-point functions.HelloPubSub \ --runtime java11 \ --memory 512MB \Vous pouvez attribuer les valeurs suivantes à l'option
--trigger-topic YOUR_TOPIC_NAME
--runtime
, afin de spécifier votre version préférée de Java :java17
(version bêta)java11
(recommandé)
C#
gcloud functions deploy csharp-pubsub-function \ --entry-point HelloPubSub.Function \ --runtime dotnet3 \
--trigger-topic YOUR_TOPIC_NAME
Ruby
gcloud functions deploy hello_pubsub --runtime ruby27 \Vous pouvez attribuer les valeurs suivantes à l'option
--trigger-topic YOUR_TOPIC_NAME
--runtime
, afin de spécifier votre version préférée de Ruby : ruby30
(version bêta)ruby27
(recommandé)ruby26
PHP
gcloud functions deploy helloworldPubsub --runtime php74 \
--trigger-topic YOUR_TOPIC_NAME
où YOUR_TOPIC_NAME
est le nom du sujet Pub/Sub auquel la fonction sera abonnée.
Si le sujet YOUR_TOPIC_NAME
n'existe pas encore, cette commande le crée automatiquement. Vous pouvez également créer un sujet avant d'exécuter la commande deploy
, en utilisant Cloud Console ou la commande gcloud
suivante :
gcloud pubsub topics create YOUR_TOPIC_NAME
Déclencher la fonction
Publiez un message dans votre sujet Cloud Pub/Sub. Dans cet exemple, le message est un nom que la fonction inclura dans un message d'accueil :
gcloud pubsub topics publish
YOUR_TOPIC_NAME
--messageYOUR_NAME
Remplacez
YOUR_TOPIC_NAME
par le nom de votre sujet Pub/Sub, etYOUR_NAME
par une chaîne arbitraire.Vérifiez les journaux pour vous assurer que les exécutions sont terminées :
gcloud functions logs read --limit 50
Vous pouvez également publier un message dans un sujet Pub/Sub à partir d'une fonction.
Nettoyer
Pour éviter que les ressources utilisées lors de ce tutoriel soient facturées sur votre compte Google Cloud, supprimez le projet contenant les ressources, ou conservez le projet et les ressources individuelles.
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 Cloud Console, 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 une fonction Cloud Functions
La suppression de fonctions Cloud Functions ne supprime pas les ressources stockées dans Cloud Storage.
Pour supprimer la fonction Cloud que vous avez créée dans ce tutoriel, exécutez la commande suivante :
Node.js
gcloud functions delete helloPubSub
Python
gcloud functions delete hello_pubsub
Go
gcloud functions delete HelloPubSub
Java
gcloud functions delete java-pubsub-function
C#
gcloud functions delete csharp-pubsub-function
Ruby
gcloud functions delete hello_pubsub
PHP
gcloud functions delete helloworldPubsub
Vous pouvez également supprimer des fonctions Cloud Functions à partir de Google Cloud Console.