Ce tutoriel explique comment planifier une fonction Cloud Run HTTP en ciblant un point de terminaison HTTP dans Cloud Scheduler. 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.
Si vous avez créé une fonction CloudEvents, vous pouvez également utiliser des déclencheurs d'événements Eventarc pour planifier votre fonction afin qu'elle réponde aux événements de votre projet. Eventarc peut déclencher des messages sur un sujet Pub/Sub, des modifications apportées à un bucket Cloud Storage, etc. Pour en savoir plus, consultez la section Types de fonctions Cloud Run.
Il est courant d'utiliser Cloud Scheduler afin de planifier l'exécution d'une fonction Cloud Run. Au cours de ce tutoriel, vous allez :
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.
Avant de commencer
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build, Cloud Functions, Cloud Run Admin, Cloud Scheduler APIs.
-
Create a service account:
-
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
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
. - Click Create and continue.
-
Grant the following roles to the service account: Cloud Run > Cloud Run Invoker, Cloud Run > Cloud Run Builder.
To grant a role, find the Select a role list, then select the role.
To grant additional roles, click
Add another role and add each additional role. - Click Continue.
-
Click Done to finish creating the service account.
-
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build, Cloud Functions, Cloud Run Admin, Cloud Scheduler APIs.
-
Create a service account:
-
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
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
. - Click Create and continue.
-
Grant the following roles to the service account: Cloud Run > Cloud Run Invoker, Cloud Run > Cloud Run Builder.
To grant a role, find the Select a role list, then select the role.
To grant additional roles, click
Add another role and add each additional role. - Click Continue.
-
Click Done to finish creating the service account.
-
Notez que vous devez attribuer le rôle Demandeur Cloud Run, car dans les fonctions Cloud Run, les autorisations d'appel sont disponibles en gérant le service Cloud Run sous-jacent.
Créer une fonction Cloud Run HTTP
Créez une fonction HTTP déclenchée par Cloud Scheduler.
Dans Google Cloud Console, accédez à la page Cloud Run.
Cliquez sur Écrire une fonction.
Dans la section Configurer, procédez comme suit:
- Dans le champ Nom du service, saisissez un nom pour votre fonction.
- Dans la liste Région, sélectionnez une région.
- Ne modifiez pas la langue d'exécution par défaut.
Pour l'authentification, sélectionnez Exiger l'authentification.
Si vous êtes soumis à une règle d'administration de restriction de domaine limitant les appels non authentifiés pour votre projet, vous devez accéder au service déployé comme décrit dans la section Tester les services privés.
Pour en savoir plus, consultez la section Authentifier pour l'appel.
Acceptez les autres paramètres par défaut et cliquez sur Créer.
Copiez l'URL HTTP de la fonction.
Créer une tâche Cloud Scheduler
Créez un job Cloud Scheduler qui déclenche une action à l'aide du protocole HTTP.
Dans la console Google Cloud, accédez à la page Cloud Scheduler.
Cliquez sur
Créer une tâche.Saisissez un nom pour votre tâche.
Dans la liste Région, sélectionnez une région.
Dans le champ Frequency (Fréquence), spécifiez la fréquence de votre tâche en utilisant un format unix-cron:
30 16 * * 7
Pour en savoir plus, consultez la section Format et fuseau horaire des tâches Cron.
Dans la liste Fuseau horaire, sélectionnez un fuseau horaire.
Cliquez sur Continuer.
Dans la liste Type de cible, sélectionnez HTTP.
Dans le champ URL, saisissez l'URL HTTP de la fonction que vous avez précédemment copiée.
Dans la liste En-tête d'authentification, sélectionnez Ajouter un jeton OIDC.
Dans la liste Compte de service, sélectionnez le compte de service que vous avez créé précédemment.
Dans le champ Audience (Audience), saisissez l'URL HTTP de la fonction que vous avez précédemment copiée.
Cliquez sur Créer.
Vous avez créé une tâche Cron qui exécute votre fonction Cloud Run à 16h30 les dimanches.
Exécuter votre tâche Cloud Scheduler
Vous pouvez maintenant exécuter la tâche que vous avez créée.
Dans Google Cloud Console, accédez à la page Cloud Scheduler.
Cochez la case correspondant à la tâche que vous avez créée, puis cliquez sur Forcer l'exécution.
Lors de son appel initial, la première tâche créée dans un projet peut prendre quelques minutes à configurer et à exécuter.
Une fois la tâche exécutée, l'état État de la dernière exécution doit indiquer
Success
.
Vérifier les résultats dans les fonctions Cloud Run
Vous pouvez vérifier que votre fonction Cloud Run est correctement déclenchée et exécutée par votre tâche cron.
Dans Google Cloud Console, accédez à la page Cloud Run.
Sélectionnez Filtrer les services > Type de déploiement > Fonction. La liste des services est filtrée pour n'afficher que les fonctions.
Cliquez sur le nom de la fonction.
La page Informations sur le service s'ouvre et affiche les métriques du service.
Cliquez sur l'onglet Journaux.
Une entrée de journal semblable à la suivante doit s'afficher :
POST 200 146 B 5 ms Google-Cloud-Scheduler https://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
- 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.
Supprimer les ressources du tutoriel
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.Dans Google Cloud Console, accédez à la page Cloud Run.
Cochez la case à côté de votre service.
Cliquez sur
Supprimer, puis confirmez la suppression.Dans Google Cloud Console, accédez à la page Comptes de service.
Cochez la case à côté du compte de service que vous avez créé.
Cliquez sur
Supprimer, puis confirmez la suppression.
Étape suivante
- Utiliser Cloud Scheduler pour déclencher Cloud Run de manière planifiée
- Écrivez des fonctions CloudEvents pour planifier votre fonction afin qu'elle réponde aux événements de votre projet.