Planifier une fonction Cloud HTTP


Ce tutoriel explique comment déclencher une fonction Cloud HTTP à l'aide de Cloud Scheduler et en ciblant un point de terminaison HTTP. Utilisez une fonction HTTP lorsque vous avez besoin que votre fonction dispose d'un point de terminaison d'URL et réponde aux requêtes HTTP, par exemple pour les webhooks.

Notez que vous pouvez également planifier une fonction basée sur des événements lorsque votre fonction doit être déclenchée directement en réponse à des événements dans votre projet Google Cloud, tels que des messages sur un sujet Pub/Sub ou des modifications dans un bucket Cloud Storage. Pour en savoir plus, consultez la page Types de fonctions Cloud.

La planification de l'exécution d'une fonction Cloud est un cas d'utilisation courant de Cloud Scheduler. Au cours de ce tutoriel, vous allez :

  1. Créer une fonction Cloud HTTP simple
  2. créer une tâche Cloud Scheduler ;
  3. exécuter la tâche Cloud Scheduler ;
  4. Vérifiez que la fonction Cloud a été déclenchée par la tâche Cloud Scheduler.

Coûts

Dans ce document, vous utilisez 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. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  4. Activer les API Cloud Build, Cloud Functions, Cloud Run Admin, Cloud Scheduler.

    Activer les API

  5. Create a service account:

    1. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    2. Select your project.
    3. In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.

      In the Service account description field, enter a description. For example, Service account for quickstart.

    4. Click Create and continue.
    5. Grant the Cloud Run > Cloud Run Invoker role to the service account.

      To grant the role, find the Select a role list, then select Cloud Run > Cloud Run Invoker.

    6. Click Continue.
    7. Click Done to finish creating the service account.

  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  7. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  8. Activer les API Cloud Build, Cloud Functions, Cloud Run Admin, Cloud Scheduler.

    Activer les API

  9. Create a service account:

    1. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    2. Select your project.
    3. In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.

      In the Service account description field, enter a description. For example, Service account for quickstart.

    4. Click Create and continue.
    5. Grant the Cloud Run > Cloud Run Invoker role to the service account.

      To grant the role, find the Select a role list, then select Cloud Run > Cloud Run Invoker.

    6. Click Continue.
    7. Click Done to finish creating the service account.

  10. Notez que vous devez attribuer le rôle Demandeur Cloud Run, car dans Cloud Functions (2nd gen), les autorisations d'appel sont disponibles en gérant le service Cloud Run sous-jacent.

  11. Par défaut, Cloud Functions utilise le compte de service Compute Engine par défaut créé automatiquement pour son compte de service d'exécution. Vous pouvez utiliser ce compte de service pour essayer ce tutoriel. Toutefois, en fonction de la configuration de vos règles d'administration, le rôle d'éditeur peut ne pas être attribué automatiquement au compte de service par défaut sur votre projet. Dans ce cas, vous devez attribuer au compte de service les rôles suivants :
    1. Rédacteur Artifact Registry (roles/artifactregistry.writer)
    2. Rédacteur de journaux (roles/logging.logWriter)
    3. Lecteur des objets de l'espace de stockage (roles/storage.objectViewer)

Créer une fonction Cloud HTTP

Créer une fonction HTTP qui est déclenchée par Cloud Scheduler.

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

    Accéder à Cloud Functions

  2. Cliquez sur Créer une fonction.

  3. Dans la section Options de base, procédez comme suit:

    1. Dans la liste Environnement, sélectionnez 2e génération.
    2. Saisissez un nom pour votre fonction.
    3. Dans la liste Région, sélectionnez une région.
  4. Dans la section Déclencheur, procédez comme suit:

    1. Dans la liste Type de déclencheur, sélectionnez HTTPS.
    2. Pour l'authentification, sélectionnez Exiger l'authentification.

      Pour en savoir plus, consultez la section S'authentifier pour un appel (2e génération).

  5. Acceptez les autres valeurs par défaut et cliquez sur Next (Suivant).

  6. Ne modifiez pas le langage d'exécution 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 Déployer.

  7. Une fois la fonction déployée, cliquez sur l'onglet Trigger (Déclencheur).

  8. Copiez l'URL HTTP de la fonction.

Créer une tâche Cloud Scheduler

Créer une tâche Cloud Scheduler qui déclenche une action à l'aide de HTTP

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

    Accéder à Cloud Scheduler

  2. Cliquez sur Créer un job.

  3. Saisissez un nom pour votre job.

  4. Dans la liste Région, sélectionnez une région.

  5. Spécifiez la fréquence de votre tâche, au format unix-cron:

    30 16 * * 7
    

    Pour en savoir plus, consultez la section Format de tâche Cron et fuseau horaire.

  6. Dans la liste Fuseau horaire, sélectionnez un fuseau horaire.

  7. Cliquez sur Continuer.

  8. Dans la liste Type de cible, sélectionnez HTTP.

  9. Dans le champ URL, saisissez l'URL HTTP de la fonction que vous avez précédemment copiée.

  10. Dans la liste En-tête d'authentification, sélectionnez Ajouter un jeton OIDC.

  11. Dans la liste Compte de service, sélectionnez le compte de service que vous avez créé précédemment.

  12. Dans le champ Audience, saisissez l'URL HTTP de la fonction que vous avez précédemment copiée.

  13. Cliquez sur Créer.

Vous avez créé une job Cron qui exécute votre fonction Cloud le dimanche à 16h30.

Exécuter votre job Cloud Scheduler

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. Cochez la case correspondant à la tâche que vous avez créée et cliquez sur Forcer l'exécution.

    Lorsqu'elle est initialement appelée, la configuration et l'exécution de la première tâche créée dans un projet peuvent prendre quelques minutes.

  3. Une fois la tâche exécutée, le champ État de la dernière exécution doit indiquer Success.

Vérifier les résultats dans Cloud Functions

Vous pouvez vérifier que votre fonction Cloud est bien déclenchée et exécuté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.

    La page Function details (Détails de la fonction) s'ouvre et le graphique Invocations/Second (Appels/Deuxième) affiche le premier appel de la fonction.

  3. Cliquez sur l'onglet Journaux.

    Vous devriez voir une entrée de journal semblable à POST 200 146 B 5 ms Google-Cloud-Scheduler https://REGION-PROJECT_ID.cloudfunctions.net/FUNCTION_NAME.

Effectuer un nettoyage

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 supprimez les ressources individuelles.

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. Dans la console Google Cloud, accédez à la page Cloud Scheduler.

    Accéder à Cloud Scheduler

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

  3. Cliquez sur Supprimer, puis confirmez votre suppression.

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

    Accéder à Cloud Functions

  5. Cochez la case à côté de votre fonction.

  6. Cliquez sur Supprimer, puis confirmez votre suppression.

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

    Accéder à la page "Comptes de service"

  8. Cochez la case à côté du compte de service que vous avez créé.

  9. Cliquez sur Supprimer, puis confirmez votre suppression.

Étapes suivantes