Cible Pub/Sub
Si vous choisissez le type de cible Pub/Sub :Spécifiez le nom du sujet sur lequel le job sera publié. Il s'agit d'un sujet Pub/Sub que vous avez déjà configuré dans votre projet.
Spécifiez un message à envoyer au sujet. Il est envoyé en tant que paramètre
datadans le message Pub/Sub. Pour obtenir un exemple, consultez le guide de démarrage rapide.Ajoutez les attributs de message dont vous avez besoin.
Configurez les paramètres supplémentaires à l'aide de la section
Configure optional settings.
Cloud Scheduler publiera des messages dans ce sujet en tant que compte de service Google APIs.
Cible HTTP App Engine
Si vous choisissez le type de cible HTTP App Engine, vous devez utiliser l'application App Engine et la région associées au projet actuel. Si vous souhaitez utiliser une autre application App Engine en dehors de votre projet actuel, choisissez HTTP comme cible, et non App Engine HTTP. Les règles de pare-feu cibles doivent autoriser les requêtes provenant de la plage d'adresses IP 0.1.0.2/32.Définissez le formulaire comme suit :
Dans la liste Type de cible, sélectionnez App Engine HTTP.
Indiquez le nom du service App Engine qui exécute le gestionnaire pour le job Cloud Scheduler. En cas d'omission,
defaultest utilisé. Si vous souhaitez la définir, vous trouverez les noms des services dans la consoleGoogle Cloud .Vous pouvez éventuellement spécifier la version. Si cette dernière n'est pas définie, la version actuellement active est utilisée. Vous trouverez les versions disponibles dans la consoleGoogle Cloud .
Vous pouvez éventuellement spécifier l'instance. Si vous ne définissez pas de règle, n'importe quelle instance disponible peut être utilisée. Vous trouverez les versions disponibles dans la consoleGoogle Cloud .
Spécifiez l'URL relative du point de terminaison App Engine que le job doit contacter. Si vous utilisez la valeur par défaut
/, le job utiliseraPROJECT-ID.appspot.com, oùPROJECT-IDest l'ID de votre projet actuel.Définissez la méthode HTTP que vous souhaitez utiliser lors de l'exécution du job. La valeur par défaut est
POST.Ajoutez les en-têtes dont vous avez besoin à la requête.
Vous pouvez éventuellement spécifier les données du corps à envoyer à la cible. Ces données sont envoyées dans le corps de la requête sous forme d'octets lorsque la méthode HTTP
POSTouPUTest sélectionnée.
Les points de terminaison App Engine ciblés doivent se trouver dans le même projet et peuvent être sécurisés avec login: admin sur l'élément handlers du fichier app.yaml.
Cible HTTP
Si vous choisissez le type de cible HTTP :Spécifiez l'URL complète du point de terminaison que le job doit contacter.
Spécifiez la méthode HTTP. La valeur par défaut est
POST.Facultatif : spécifiez les données à envoyer à la cible. Ces données sont envoyées dans le corps de la requête sous forme d'octets lorsque la méthode HTTP
POSTouPUTest sélectionnée.Facultatif : ajoutez les en-têtes dont vous avez besoin. Si votre point de terminaison cible nécessite une clé API dans l'en-tête, utilisez le nom d'en-tête attendu par votre service cible, par exemple
x-api-keyouX-Goog-Api-Key. L'utilisation deapi_keycomme nom d'en-tête peut entraîner des échecs d'authentification.Pour créer un job HTTP cible nécessitant une authentification, consultez la page Utilisez l'authentification avec des cibles HTTP.
Les points de terminaison HTTP ciblés doivent être accessibles au public.
Vous pouvez utiliser Cloud Scheduler pour configurer des unités de travail planifiées, connues en tant que jobs Cron, qui sont envoyés à des cibles sur certains plannings récurrents, également appelés intervalle ou fréquence du job.
Une seule instance d'une tâche doit être exécutée à un instant T. Dans de rares cas, il est possible que plusieurs instances d'un même job soient demandées. Par conséquent, votre gestionnaire de requêtes doit être idempotent, et votre code doit vous assurer qu'il n'y a pas d'effets secondaires néfastes si cela se produit.
Si un job est toujours en cours d'exécution ou en attente d'une réponse de sa cible, les autres exécutions planifiées du job sont ignorées jusqu'à ce que l'exécution en cours se termine ou expire. Pour en savoir plus, consultez Les exécutions de jobs suivantes ne démarrent pas.
Cloud Scheduler est destiné aux jobs récurrents. Si vous devez exécuter un job une seule fois, envisagez d'utiliser Cloud Tasks, qui peut planifier un job jusqu'à 30 jours à l'avance.
Avant de commencer
Assurez-vous d'avoir configuré votre environnement pour Cloud Scheduler.
Choisir un type de cible
Cloud Scheduler peut appeler les types de cibles suivants :
Points de terminaison HTTP
Sujets Pub/Sub
Services App Engine
Appeler des services cibles limités à l'entrée interne
Cloud Scheduler peut appeler les services suivants en interne :
- Fonctions Cloud Run
- Cloud Run (sur l'URL
run.app, pas sur les domaines personnalisés)
Pour appeler ces cibles en interne, la cible doit se trouver dans le même projet ou périmètre VPC Service ControlsGoogle Cloud que votre job Cloud Scheduler.
Pour en savoir plus sur la sécurisation des cibles en limitant l'entrée, consultez Limiter l'entrée (pour Cloud Run) et Configurer les paramètres réseau (pour Cloud Run Functions).
Créer un job
Vous pouvez créer un job à l'aide de la console Google Cloud ou de la Google Cloud CLI.
Console
Dans la console Google Cloud , accédez à la page Cloud Scheduler.
Cliquez sur Créer un job.
Dans le champ Nom, saisissez un nom pour le job, unique au projet.
Après avoir supprimé le job associé, vous pouvez réutiliser un nom de job dans un projet.
Dans la liste Région, sélectionnez une région.
Si vous utilisez une cible HTTP App Engine, vous devez choisir la même région que celle de votre application App Engine. Pour en savoir plus, consultez Régions prises en charge par cible.
Facultatif : fournissez une brève description du job, par exemple un rappel de son rôle.
Cette description s'affiche dans la console à côté du nom du job.
Spécifiez la fréquence à laquelle le job doit s'exécuter, à l'aide d'une chaîne de configuration.
Par exemple, la chaîne
0 1 * * 0exécute le job une fois par semaine, à 1h du matin tous les dimanches. La chaîne que vous indiquez ici peut être n'importe quelle chaîne compatible unix-cron. Pour en savoir plus, consultez la section Configurer des job Cron Cron.Dans la liste Fuseau horaire, sélectionnez le fuseau horaire à utiliser pour la programmation du job.
Cliquez sur Continuer.
Spécifiez le type de cible :
Pub/Sub : vous devez spécifier le nom du sujet Pub/Sub que vous avez déjà configuré dans votre projet et dans lequel le job publiera.
App Engine HTTP : vous devez utiliser l'application App Engine et la région associées au projet actuel.
Cliquez sur Continuer.
Facultatif : pour configurer un comportement de nouvelle tentative, cliquez sur Configurer les paramètres facultatifs. Pour spécifier la durée, utilisez une séquence d'entiers décimaux non négatifs avec les suffixes d'unité suivants :
- h - heure
- m - minute
- s - seconde
- ms - milliseconde
- us - microseconde
- ns - nanoseconde
Les valeurs négatives et fractionnaires ne sont pas autorisées. Le champ
Max retry durationn'accepte que les valeursh,mets.Min backoff durationetMax backoff durationsont tous deux compatibles avec l'ensemble complet.Facultatif : Pour les cibles HTTP et HTTP App Engine, configurez un délai avant expiration pour les tentatives de job. Si le gestionnaire de requêtes ne répond pas délai, la requête est annulée et la tentative est marquée comme ayant échoué. Cloud Scheduler relance le job en fonction de la configuration des nouvelles tentatives.
Pour créer et enregistrer le job, cliquez sur Créer.
Le job s'exécutera désormais à la fréquence spécifiée.
gcloud
Lorsque vous créez un job à l'aide de la gcloud CLI, vous utilisez différentes commandes pour chaque type de cible :
HTTP
Vous pouvez envoyer une requête à n'importe quel point de terminaison HTTP ou HTTPS. Les points de terminaison HTTP ciblés doivent être accessibles publiquement.
gcloud scheduler jobs create http JOB \ --location=LOCATION \ --schedule=SCHEDULE \ --uri=URI
Remplacez les éléments suivants :
JOB: nom de job qui doit être unique dans le projet. Notez que vous ne pouvez pas réutiliser un nom de job dans un projet, même si vous supprimer le job associé.LOCATION: emplacement d'exécution de votre job.SCHEDULE: fréquence ou intervalle du job auquel le job doit s'exécuter (par exemple,every 3 hours). La que vous indiquez ici peut être tout type unix-cron chaîne compatible. Bien que nous ne recommandions plus son utilisation, l'ancienne version Syntaxe Cron d'App Engine est toujours compatible avec les jobs existants.Pour en savoir plus, consultez la section Configurer des job Cron Cron.
URI: URI complet du point de terminaison que le job doit contacter.
D'autres paramètres sont décrits dans la documentation de référence de la ligne de commande gcloud :
Facultatif : spécifiez la méthode HTTP. La valeur par défaut est
POST.Facultatif : spécifiez les données à envoyer à la cible. Ces données sont envoyées dans le corps de la requête sous forme d'octets lorsque la méthode HTTP
POSTouPUTest sélectionnée.Facultatif : Utilisez l'option
--headerspour inclure des en-têtes de requête HTTP. Si votre point de terminaison cible nécessite une clé API dans l'en-tête, utilisez le nom d'en-tête attendu par votre service cible, par exemplex-api-keyouX-Goog-Api-Key. L'utilisation deapi_keycomme nom d'en-tête peut entraîner des échecs d'authentification.Facultatif : définissez les valeurs de nouvelle tentative, qui spécifient comment le job App Engine doit être relancé en cas d'échec. Dans la plupart des cas, les valeurs par défaut suffisent.
Pour créer un job HTTP Target nécessitant une authentification, consultez la page Utiliser l'authentification avec des cibles HTTP
Exemple
gcloud scheduler jobs create http my-http-job \ --schedule "0 1 * * 0" \ --uri "http://myproject/my-url.com" \ --http-method GET
Pub/Sub
Vous devez utiliser un sujet Pub/Sub que vous avez déjà configuré dans votre projet. Cloud Scheduler publiera des messages dans ce sujet en tant que compte de service Google APIs.
gcloud scheduler jobs create pubsub JOB \ --location=LOCATION \ --schedule=SCHEDULE \ --topic=TOPIC
Remplacez les éléments suivants :
JOB: nom de job qui doit être unique dans le projet. Notez que vous ne pouvez pas réutiliser un nom de job dans un projet, même si vous supprimer le job associé.LOCATION: emplacement d'exécution de votre job.SCHEDULE: fréquence ou intervalle du job auquel le job doit s'exécuter (par exemple,every 3 hours). La que vous indiquez ici peut être n'importe quelle unix-cron chaîne compatible. Bien que nous ne recommandions plus son utilisation, l'ancienne version Syntaxe Cron d'App Engine est toujours compatible avec les jobs existants.Pour en savoir plus, consultez la section Configurer des job Cron Cron.
TOPIC: nom du sujet sur lequel le job publiera. Utilisez l'option--message-bodyou--message-body-from-filepour spécifier un message à envoyer au sujet. Il est envoyé en tant que paramètredatadans le message Pub/Sub. Pour obtenir un exemple, consultez le guide de démarrage rapide.
Les autres paramètres sont décrits dans la documentation de référence de la ligne de commande gcloud.
Exemple
gcloud scheduler jobs create pubsub myjob \ --schedule "0 1 * * 0" \ --topic cron-topic \ --message-body "Hello"
HTTP App Engine
La cible App Engine HTTP n'est disponible que pour l'application App Engine associée au projet en cours. Si vous souhaitez utiliser une autre application App Engine en dehors de votre projet actuel, choisissez HTTP comme cible, et non App Engine HTTP. Les règles de pare-feu cibles doivent autoriser les requêtes provenant de la plage d'adresses IP 0.1.0.2/32.
Les points de terminaison App Engine peuvent être sécurisés avec login: admin sur l'élément handlers du fichier app.yaml.
gcloud scheduler jobs create app-engine \ --JOB=JOB \ --location=LOCATION \ --schedule=SCHEDULE
Remplacez les éléments suivants :
JOB: nom de job qui doit être unique dans le projet. Notez que vous ne pouvez pas réutiliser un nom de job dans un projet, même si vous supprimer le job associé.LOCATION: emplacement d'exécution de votre job. Il doit être identique à celui de votre application App Engine.SCHEDULE: fréquence ou intervalle du job auquel le job doit s'exécuter, par exemple,every 3 hours. La chaîne que vous fournissez il peut y avoir unix-cron chaîne compatible. Bien que nous ne recommandions plus son utilisation, l'ancienne version Syntaxe Cron d'App Engine est toujours compatible avec les jobs existants.Pour en savoir plus, consultez la section Configurer des job Cron Cron.
D'autres paramètres sont décrits dans la documentation de référence de la ligne de commande gcloud :
Spécifiez l'URL relative du point de terminaison App Engine que le job doit contacter. Si vous utilisez la valeur par défaut
/, le job utiliseraPROJECT-ID.appspot.com, oùPROJECT-IDest l'ID de votre projet actuel.Indiquez le nom du service App Engine qui exécute le gestionnaire pour le job Cloud Scheduler. En cas d'omission,
defaultest utilisé. Si vous souhaitez la définir, vous trouverez les noms des services dans la consoleGoogle Cloud .Facultatif : définissez la méthode HTTP que vous souhaitez utiliser lors de l'exécution du job. La valeur par défaut est
POST.Facultatif : spécifiez la version. Si ce champ n'est pas défini, la version actuellement diffusée est utilisée. Vous trouverez les versions disponibles dans la consoleGoogle Cloud .
Facultatif : spécifiez l'instance. Si cette valeur n'est pas définie, n'importe quelle instance disponible peut être utilisée. Vous trouverez les versions disponibles dans la consoleGoogle Cloud .
Facultatif : spécifiez les données à envoyer à la cible. Ces données sont envoyées dans le corps de la requête sous forme d'octets lorsque la méthode HTTP
POSTouPUTest sélectionnée.Facultatif : définissez les valeurs de nouvelle tentative, qui spécifient comment le job App Engine doit être relancé en cas d'échec. Dans la plupart des cas, les valeurs par défaut sont suffisantes.
Exemple
gcloud scheduler jobs create app-engine my-appengine-job \ --schedule "0 1 * * 0" \ --relative-url "/cron-handler"
Modifier une mission
Vous pouvez modifier la configuration d'un job.
Console
Dans la console Google Cloud , accédez à la page Cloud Scheduler.
Sélectionnez le job à modifier.
Cliquez sur Modifier.
Suivez les étapes pour définir le calendrier, configurer l'exécution et configurer des paramètres facultatifs lors de la création d'un job.
gcloud
Lorsque vous modifiez un job à l'aide de la gcloud CLI, vous utilisez différentes commandes pour chaque type de cible :
HTTP
Vous pouvez envoyer une requête à n'importe quel point de terminaison HTTP ou HTTPS. Les points de terminaison HTTP ciblés doivent être accessibles publiquement.
gcloud scheduler jobs update http JOB \ --location=LOCATION \ --schedule=SCHEDULE \ --uri=URI
Remplacez les éléments suivants :
JOB: nom de job qui doit être unique dans le projet. Notez que vous ne pouvez pas réutiliser un nom de job dans un projet, même si vous supprimer le job associé.LOCATION: emplacement dans lequel votre job est exécuté. Si vous ne spécifiez pas l'emplacement, la gcloud CLI utilise votre emplacement par défaut. Si le job à modifier se trouve dans un autre vous devez spécifier l'emplacement en plus de l'élémentNAMEpour que votre job soit identifié. Vous ne pouvez pas mettre à jour l'emplacement du job.SCHEDULE: fréquence ou intervalle du job auquel le job doit s'exécuter (par exemple,every 3 hours). La que vous indiquez ici peut être tout type unix-cron chaîne compatible. Bien que nous ne recommandions plus son utilisation, l'ancienne version Syntaxe Cron d'App Engine est toujours compatible avec les jobs existants.Pour en savoir plus, consultez la section Configurer des job Cron Cron.
URI: URI complet du point de terminaison que le job doit contacter.
Les autres paramètres sont décrits dans la documentation de référence de la ligne de commande gcloud.
Exemple
gcloud scheduler jobs update http my-http-job \ --schedule "0 1 * * 0" \ --uri "http://myproject/my-url.com" \ --http-method GET
Pub/Sub
Vous devez utiliser un sujet Pub/Sub que vous avez déjà configuré dans votre projet. Cloud Scheduler publiera des messages dans ce sujet en tant que compte de service Google APIs.
gcloud scheduler jobs update pubsub JOB \ --location=LOCATION \ --schedule=SCHEDULE \ --topic=TOPIC
Remplacez les éléments suivants :
JOB: nom de job qui doit être unique dans le projet. Notez que vous ne pouvez pas réutiliser un nom de job dans un projet, même si vous supprimer le job associé.LOCATION: emplacement dans lequel votre job est exécuté. Si vous ne spécifiez pas l'emplacement, la gcloud CLI utilise votre emplacement par défaut. Si le job à modifier se trouve dans un autre vous devez spécifier l'emplacement en plus de l'élémentNAMEpour que votre job soit identifié. Vous ne pouvez pas mettre à jour l'emplacement du job.SCHEDULE: fréquence ou intervalle du job auquel le job doit s'exécuter, par exemple,every 3 hours. La chaîne que vous fournissez il peut y avoir unix-cron chaîne compatible. Bien que nous ne recommandions plus son utilisation, l'ancienne version Syntaxe Cron d'App Engine est toujours compatible avec les jobs existants.Pour en savoir plus, consultez la section Configurer des job Cron Cron.
TOPIC: nom du sujet sur lequel le job publiera. Utilisez l'option--message-bodyou--message-body-from-filepour spécifier un message à envoyer au sujet. Il est envoyé en tant que paramètredatadans le message Pub/Sub. Pour obtenir un exemple, consultez le guide de démarrage rapide.
Les autres paramètres sont décrits dans la documentation de référence de la ligne de commande gcloud.
Exemple
gcloud scheduler jobs update pubsub myjob \ --schedule "0 1 * * 0" \ --topic cron-topic --message-body "Hello"
HTTP App Engine
La cible App Engine HTTP n'est disponible que pour l'application App Engine associée au projet en cours. Si vous souhaitez utiliser une autre application App Engine en dehors de votre projet actuel, choisissez HTTP comme cible, et non App Engine HTTP.
Les points de terminaison App Engine peuvent être sécurisés avec login: admin sur l'élément handlers du fichier app.yaml.
gcloud scheduler jobs update app-engine JOB \ --location=LOCATION \ --schedule=SCHEDULE
Remplacez les éléments suivants :
JOB: nom de job qui doit être unique dans le projet. Notez que vous ne pouvez pas réutiliser un nom de job dans un projet, même si vous supprimer le job associé.LOCATION: emplacement dans lequel votre job s'exécute (il s'agit de l'emplacement identique à l'emplacement de votre application App Engine cible). Si vous ne spécifiez pas l'emplacement, la gcloud CLI utilise votre emplacement par défaut. Si le job à modifier se trouve dans un autre vous devez spécifier l'emplacement en plus de l'élémentNAMEpour que votre job soit identifié. Vous ne pouvez pas mettre à jour l'emplacement du job.SCHEDULE: fréquence ou intervalle du job auquel le job doit s'exécuter, par exemple,every 3 hours. La chaîne que vous fournissez il peut y avoir unix-cron chaîne compatible. Bien que nous ne recommandions plus son utilisation, l'ancienne version Syntaxe Cron d'App Engine est toujours compatible avec les jobs existants.Pour en savoir plus, consultez la section Configurer des job Cron Cron.
Les autres paramètres sont décrits dans la documentation de référence de la ligne de commande gcloud.
Exemple
gcloud scheduler jobs update app-engine my-appengine-job \ --schedule "0 1 * * 0" \ --relative-url "/cron-handler"
Suspendre un job
Vous pouvez suspendre l'exécution d'un job.
Console
Dans la console Google Cloud , accédez à Cloud Scheduler.
Sélectionnez le job à suspendre.
Cliquez sur Mettre en veille.
gcloud
Ouvrez une fenêtre de terminal sur l'ordinateur sur lequel vous avez installé la gcloud CLI.
Exécutez la commande suivante :
gcloud scheduler jobs pause MY_JOBRemplacez
MY_JOBpar le nom du job à suspendre.
Lorsqu'un job est suspendu, vous pouvez également le modifier. Une fois le job modifié, il en pause jusqu'à ce que vous le relanciez.
Reprendre un job
Vous pouvez reprendre l'exécution d'un job mis en pause.
Console
Dans la console Google Cloud , accédez à Cloud Scheduler.
Sélectionnez le job à reprendre.
Le job doit déjà être mis en veille.
Cliquez sur Réactiver.
gcloud
Ouvrez une fenêtre de terminal sur l'ordinateur sur lequel vous avez installé la gcloud CLI.
Exécutez la commande suivante :
gcloud scheduler jobs resume MY_JOBRemplacez
MY_JOBpar le nom du job à reprendre.
Supprimer un job
Vous pouvez supprimer un job.
Console
Dans la console Google Cloud , accédez à Cloud Scheduler.
Sélectionnez le job à supprimer.
Cliquez sur Supprimer.
gcloud
Ouvrez une fenêtre de terminal sur l'ordinateur sur lequel vous avez installé la gcloud CLI.
Exécutez la commande suivante :
gcloud scheduler jobs delete MY_JOBRemplacez
MY_JOBpar le nom du job à supprimer.