Ce tutoriel montre comment utiliser Cloud Scheduler et Pub/Sub pour déclencher une fonction Cloud. Il est courant d'utiliser Cloud Scheduler afin de planifier l'exécution d'une fonction Cloud Functions. Vous découvrirez comment :
- créer une fonction Cloud simple qui s'abonne à un sujet Pub/Sub ;
- créer un sujet Pub/Sub pour déclencher cette fonction ;
- Créer une tâche Cloud Scheduler qui appelle le déclencheur Pub/Sub
- exécuter la tâche Cloud Scheduler ;
- vérifier le bon déroulement de l'opération.
Avant de commencer
Dans ce tutoriel, nous partons du principe que vous avez déjà effectué le Démarrage rapide de Cloud Scheduler. Par conséquent, vous disposez des outils et ressources suivants:Un projet Google Cloud avec facturation activée.
L'API Cloud Scheduler et l'API Pub/Sub sont toutes deux activées sur le projet. Vous activerez l'API Cloud Functions au cours de ce tutoriel.
Coûts
Dans ce document, vous utilisez les composants facturables suivants de Google Cloud :
- Cloud Functions
- Pub/Sub
- Cloud Scheduler
Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût.
Créer une fonction Cloud avec un déclencheur
Dans la console Google Cloud, accédez à la page Cloud Functions.
Si vous y êtes invité, cliquez sur Activer l'API.
Cliquez sur Créer une fonction. Si un message vous invite à activer les API, cliquez sur Activer pour les activer.
Dans la section Principes de base, sélectionnez l'environnement 2nd gen, saisissez un nom pour votre fonction, puis sélectionnez une région.
Dans la section Déclencheur, sélectionnez Exiger l'authentification. Cliquez sur Ajouter un déclencheur, puis sélectionnez Déclencheur Pub/Sub. Le panneau Déclencheur Eventarc s'ouvre. Si vous êtes invité à activer les API requises, cliquez sur Activer.
Dans le panneau Déclencheur Eventarc, assurez-vous que les premiers champs sont remplis comme suit ou remplissez-les si nécessaire:
- Type de déclencheur:sources Google
- Fournisseur d'événements:Cloud Pub/Sub
- Événement:
google.cloud.pubsub.topic.v1.messagePublished
Dans le champ Sélectionner un sujet Cloud Pub/Sub, sélectionnez un sujet existant ou cliquez sur Créer un sujet pour en créer un. Votre fonction s'abonne à ce sujet. Notez le nom du sujet. Vous en aurez besoin par la suite.
- Si vous y êtes invité, cliquez sur Grant (Attribuer) pour permettre au service Pub/Sub de créer les jetons d'identité dont il aura besoin pour déclencher la fonction. Rappelez-vous que vous avez sélectionné Exiger l'authentification pour la fonction précédemment. Pub/Sub utilise les jetons d'identité pour cette authentification requise.
Dans le champ Compte de service, cliquez sur Créer un compte de service.
Attribuez un nom au compte de service, puis cliquez sur Créer. Eventarc utilise ce compte de service pour appeler la fonction avec un jeton d'identité à partir du service Pub/Sub.
Dans la section Autoriser ce compte de service à accéder au projet, sélectionnez le rôle Demandeur Cloud Run. Cela permet au compte de service d'appeler votre fonction de 2e génération.
Cliquez sur OK.
Laissez l'option Réessayer après échec désélectionnée. Cliquez sur Enregistrer le déclencheur.
Développez la section Paramètres d'exécution, de compilation, de connexion et de sécurité, puis sélectionnez l'onglet Environnement d'exécution.
Sous Compte de service d'exécution, cliquez sur Créer dans le champ Compte de service. Le processus de création d'un compte de service s'ouvre dans un nouvel onglet. Ce compte de service est l'identité dont dispose la fonction Cloud lorsqu'elle s'exécute.
- Attribuez un nom au compte de service.
- Cliquez sur Créer et continuer.
- Cliquez sur OK.
Vous êtes redirigé vers la page Comptes de service de la console Google Cloud. Vous pouvez fermer cet onglet.
Revenez au champ Compte de service sur la page de création de la fonction, cliquez sur Actualiser, puis sélectionnez le compte de service que vous venez de créer.
Cliquez sur Suivant. Si vous êtes invité à activer les API requises, cliquez sur Enable (Activer).
Ne modifiez pas le langage par défaut ni l'exemple de code. Le code n'utilise aucun service cloud et ne nécessite aucune autorisation supplémentaire. Cliquez sur Déployer.
Créer une tâche Cloud Scheduler
Dans la console Google Cloud, accédez à la page Cloud Scheduler.
Cliquez sur Créer une tâche.
Si nécessaire, sélectionnez une région dans laquelle exécuter votre job.
Attribuez un nom à votre tâche. Vous pouvez éventuellement ajouter une description.
Dans le champ Frequency (Fréquence), spécifiez la fréquence de votre tâche en utilisant le format unix-cron.
30 16 * * 7
Pour en savoir plus, consultez la section Configurer les job Cron Cron.
Sélectionnez votre fuseau horaire.
Cliquez sur Continuer.
Dans la section Configurer l'exécution, sélectionnez Pub/Sub comme type de cible.
Sélectionnez le nom de votre sujet.
Ajoutez une courte chaîne Message à envoyer à votre cible.
Cliquez sur Créer.
Vous disposez maintenant d'une job Cron qui envoie un message à votre sujet Pub/Sub à 16h30 tous les dimanches. Votre fonction Cloud Functions est abonnée à ce sujet.
Exécuter votre tâche
Vous pouvez maintenant exécuter le job que vous avez créé.
Dans Google Cloud Console, accédez à la page Cloud Scheduler.
Sélectionnez le job que vous avez créé.
Cliquez sur Forcer l'exécution.
La première exécution de la première tâche créée dans un projet peut prendre quelques minutes, étant donné que des opérations de configuration sont requises.
Notez la colonne État de la dernière exécution. Une fois la tâche exécutée, cette colonne doit indiquer "Opération réussie".
Félicitations ! Vous venez d'utiliser la console pour afficher les résultats de l'exécution d'une tâche Cron qui envoie un message à Pub/Sub. Dans la prochaine étape, vous allez découvrir comment vérifier que votre fonction Cloud Functions a bien été exécutée.
Vérifier les résultats dans Cloud Functions
Pour vérifier que votre fonction Cloud est correctement déclenchée par votre job Cron:
Dans la console Google Cloud, accédez à la page Cloud Functions.
Cliquez sur le nom de la fonction.
La page Informations sur la fonction s'ouvre. Le graphique Invocations/Seconds (Appels/secondes) doit afficher votre premier appel de la fonction. Pour afficher les détails de l'appel, cliquez sur Journaux.
Félicitations ! Votre fonction a été exécutée.
Effectuer un nettoyage
Pour éviter que les ressources utilisées dans ce tutoriel soient facturées sur votre compte Google Cloud, procédez comme suit:
Supprimer la tâche Cloud Scheduler
Dans la console Google Cloud, accédez à la page Cloud Scheduler.
Cochez la case située en regard de votre tâche.
Cliquez sur
Supprimer, puis confirmez la suppression.
Supprimer le sujet Pub/Sub
Dans la console Google Cloud, accédez à la page Cloud Pub/Sub.
Cochez la case à côté de votre thème.
Cliquez sur
Supprimer, puis confirmez la suppression.
Supprimer la fonction Cloud Functions
Dans la console Google Cloud, accédez à la page Cloud Functions.
Cochez la case située à côté de votre fonction.
Cliquez sur
Supprimer, puis confirmez la suppression.
Supprimer les comptes de service
Dans Google Cloud Console, accédez à la page Comptes de service.
Cochez les cases correspondant aux comptes de service que vous avez créés.
Cliquez sur
Supprimer, puis confirmez la suppression.
Désactiver les API
Si vous avez activé des API au cours de ce tutoriel (telles que les API Eventarc, Cloud Functions ou Pub/Sub), désactivez-les. La désactivation d'API affecte l'accès à l'API pour le projet. Par conséquent, ne désactivez pas les API si d'autres ressources de votre projet les utilisent.
Dans la console Google Cloud, accédez à la page API et services.
Cliquez sur l'API que vous souhaitez désactiver. Une page décrivant l'API s'affiche.
Cliquez sur
Désactiver l'API.
Supprimer le projet
Si vous avez créé un projet seulement pour ce tutoriel :
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.