Planifier une fonction Cloud

Ce tutoriel explique comment déclencher une fonction Cloud à l'aide de Cloud Scheduler et de Pub/Sub. Pouvoir planifier l'exécution d'une fonction Cloud est un cas d'utilisation courant de Cloud Scheduler. Vous découvrirez comment :

  • créer une fonction Cloud simple qui s'abonne à un sujet Pub/Sub ;
  • Créer une tâche Cloud Scheduler qui publie un message dans le sujet Pub/Sub
  • exécuter la tâche Cloud Scheduler ;
  • Vérifier que la fonction Cloud a été déclenchée par la tâche Cloud Scheduler

Avant de commencer

Dans ce tutoriel, nous partons du principe que vous avez déjà effectué le guide de démarrage rapide de Cloud Scheduler. Par conséquent, vous pouvez utiliser les 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. Les nouveaux utilisateurs de Google Cloud peuvent bénéficier d'un essai gratuit.

Créer une fonction Cloud avec un déclencheur

  1. Dans la console Google Cloud, accédez à la page Cloud Functions.

    Accéder à Cloud Functions

  2. Cliquez sur Activer l'API si vous y êtes invité.

  3. Cliquez sur Créer une fonction. Si un message vous invitant à activer les API s'affiche, cliquez sur Activer pour les activer.

  4. Dans la section Principes de base, sélectionnez l'environnement 2nd gen, saisissez un nom pour votre fonction et sélectionnez une région.

  5. Dans la section Déclencheur, sous Type de déclencheur, sélectionnez Cloud Pub/Sub, puis cliquez sur Plus d'options. Le panneau Déclencheur Eventarc s'ouvre. Si l'invite Activer les API requises s'affiche, cliquez sur Activer.

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

    • Cliquez sur Attribuer si vous y êtes invité pour permettre au service Pub/Sub de créer les jetons d'identité dont il a besoin pour appeler la fonction.
  8. Dans le champ Compte de service, cliquez sur Créer un compte de service.

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

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

    3. Cliquez sur OK.

  9. Laissez l'option Réessayer après échec non sélectionnée. Cliquez sur Enregistrer le déclencheur.

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

  11. Sous Compte de service d'exécution, dans le champ Compte de service, cliquez sur Créer. Le parcours de création d'un compte de service s'ouvre dans un nouvel onglet. Ce compte de service est l'identité de la fonction Cloud lorsqu'elle s'exécute.

    1. Attribuez un nom au compte de service.
    2. Cliquez sur Créer et continuer.
    3. Cliquez sur OK.

    Vous êtes redirigé vers la page Comptes de service de la console Google Cloud. Vous pouvez fermer cet onglet.

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

  13. Cliquez sur Suivant. Si vous êtes invité à activer les API requises, cliquez sur Activer.

  14. Ne modifiez pas le langage par défaut ni l'exemple de code. Le code n'utilise aucun service cloud et ne nécessite pas d'autorisations supplémentaires. Cliquez sur Deploy (Déployer).

Créer une tâche Cloud Scheduler

  1. Dans la console Google Cloud, accédez à la page Cloud Scheduler.

    Accéder à Cloud Scheduler

  2. Cliquez sur Créer une tâche.

  3. Saisissez le nom de votre tâche, sélectionnez la région dans laquelle vous souhaitez l'exécuter et ajoutez éventuellement une description.

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

  5. Sélectionnez votre fuseau horaire.

  6. Cliquez sur Continuer.

  7. Dans la section Configurer l'exécution, sélectionnez Pub/Sub comme type de cible.

  8. Sélectionnez votre sujet Pub/Sub.

  9. Ajoutez une courte chaîne Message à envoyer à votre cible.

  10. Cliquez sur Créer.

Vous disposez maintenant d'une job Cron qui envoie un message à votre sujet Pub/Sub à 16h30 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éé.

  1. Dans Google Cloud Console, accédez à la page Cloud Scheduler.

    Accéder à Cloud Scheduler

  2. Sélectionnez le job que vous avez créé.

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

  4. La colonne État de la dernière exécution s'affiche. 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:

  1. Dans la console Google Cloud, accédez à la page Cloud Functions.

    Accéder à Cloud Functions

  2. Cliquez sur le nom de la fonction.

  3. La page Informations sur la fonction s'ouvre. Le graphique Appels/Seconde affiche le 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

  1. Dans la console Google Cloud, accédez à la page Cloud Scheduler.

    Accéder au programmeur

  2. Cochez la case située en regard de votre tâche.

  3. Cliquez sur Supprimer, puis confirmez la suppression.

Supprimer le sujet Pub/Sub

  1. Dans la console Google Cloud, accédez à la page Cloud Pub/Sub.

    Accéder à Pub/Sub

  2. Cochez la case à côté de votre thème.

  3. Cliquez sur Supprimer, puis confirmez la suppression.

Supprimer la fonction Cloud

  1. Dans la console Google Cloud, accédez à la page Cloud Functions.

    Accéder à Cloud Functions

  2. Cochez la case située à côté de votre fonction.

  3. Cliquez sur Supprimer, puis confirmez la suppression.

Supprimer les comptes de service

  1. Dans Google Cloud Console, accédez à la page Comptes de service.

    Accéder à la page "Comptes de service"

  2. Cochez les cases correspondant aux comptes de service que vous avez créés.

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

  1. Dans la console Google Cloud, accédez à la page API et services.

    Accéder aux API et services

  2. Cliquez sur l'API que vous souhaitez désactiver. Une page décrivant l'API s'affiche.

  3. Cliquez sur Désactiver l'API.

Supprimer le projet

Si vous avez créé un projet uniquement pour ce tutoriel, vous pouvez le supprimer.

  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.