Cible Pub/Sub
Si vous choisissez le type de cible Pub/Sub:Spécifiez le nom du sujet sur lequel la tâche sera publiée. 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
data
dans le message Pub/Sub. Pour obtenir un exemple de cette opération, consultez le guide de démarrage rapide.Ajoutez les attributs de message dont vous avez besoin.
Définissez toute configuration supplémentaire à l'aide de la section
Configure optional settings
.
Cloud Scheduler publiera des messages dans ce sujet en tant que compte de service des API Google.
Cible HTTP App Engine
Si vous choisissez le type de cible App Engine HTTP, vous devez utiliser l'application App Engine et la région associée au projet en cours. Si vous souhaitez utiliser une autre application App Engine en dehors de votre projet actuel, sélectionnez HTTP comme cible, et non App Engine HTTP. Les règles de pare-feu cible 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 HTTP App Engine.
Spécifiez le nom du service App Engine qui exécute le gestionnaire de la tâche Cloud Scheduler. Si cette valeur est omise, le service
default
est utilisé. Si vous souhaitez la définir, vous trouverez les noms des services dans la console Google 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 pouvez consulter les versions disponibles dans la console Google Cloud.
Vous pouvez éventuellement spécifier l'instance. Si cette règle n'est pas configurée, n'importe quelle instance disponible peut être utilisée. Vous pouvez consulter les versions disponibles dans la console Google Cloud.
Spécifiez l'URL relative du point de terminaison App Engine que la tâche contactera. Si vous utilisez la valeur par défaut
/
, le job utiliseraPROJECT-ID.appspot.com
, oùPROJECT-ID
correspond à l'ID de votre projet actuel.Définissez la méthode HTTP que vous souhaitez utiliser lors de l'exécution de la tâche. La valeur par défaut est
POST
.Ajoutez les en-têtes nécessaires à 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
POST
ouPUT
est sélectionnée.
Les points de terminaison App Engine ciblés doivent faire partie du 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 la tâche doit contacter.
Spécifiez la méthode HTTP. La valeur par défaut est
POST
.Vous pouvez éventuellement spécifier 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
POST
ouPUT
est sélectionnée.Ajoutez les en-têtes dont vous avez besoin.
Pour créer une tâche HTTP cible nécessitant une authentification, consultez la page Utiliser 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, appelées tâches Cron, qui sont envoyées à des cibles selon une planification récurrente, également appelée intervalle ou fréquence de tâche.
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 de la même tâche soient demandées. Par conséquent, votre gestionnaire de requêtes doit être idempotent et votre code doit garantir l'absence d'effets secondaires nuisibles si cela se produit.
Cloud Scheduler est destiné aux tâches récurrentes. Si vous n'avez besoin d'exécuter une tâche qu'une seule fois, envisagez d'utiliser Cloud Tasks, qui permet de planifier une tâche 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 à une entrée interne
Cloud Scheduler peut appeler les services suivants en interne:
- Cloud Functions
- Cloud Run (sur l'URL
run.app
, et non sur des domaines personnalisés)
Pour appeler ces cibles en interne, la cible doit se trouver dans le même projet Google Cloud ou le même périmètre VPC Service Controls que votre job Cloud Scheduler.
Pour en savoir plus sur la sécurisation des cibles en limitant l'entrée, consultez les pages Restreindre le trafic d'entrée (pour Cloud Run) et Configurer les paramètres réseau (pour Cloud Functions).
Créer un job
Vous pouvez créer une tâche à l'aide de la console Google Cloud ou de la Google Cloud CLI.
Console
Dans la console Google Cloud, accédez à Cloud Scheduler.
Cliquez sur Créer une tâche.
Dans le champ Name (Nom), indiquez un nom de tâche unique pour le projet.
Après avoir supprimé la tâche associée, vous pouvez réutiliser un nom de tâche 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 votre application App Engine. Pour en savoir plus, consultez la page Régions acceptées par cible.
Vous pouvez éventuellement fournir une brève description de la tâche, par exemple un rappel de son rôle.
Cette description apparaît dans la console à côté du nom de la tâche.
Spécifiez la fréquence d'exécution de la tâche à l'aide d'une chaîne de configuration.
Par exemple, la chaîne
0 1 * * 0
exécute la tâche une fois par semaine à 1h tous les dimanches matin. La chaîne que vous fournissez ici peut être n'importe quelle chaîne compatible avec unix-cron. Pour en savoir plus, consultez la section Configurer des job Cron Cron.Dans la liste Fuseau horaire, choisissez le fuseau horaire à utiliser pour la planification des tâches.
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 la tâche va être publiée.
App Engine HTTP : vous devez utiliser l'application App Engine et la région associée au projet en cours.
Cliquez sur Continuer.
Si vous souhaitez configurer le 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 duration
n'accepte que les valeursh
,m
ets
.Min backoff duration
etMax backoff duration
prennent en charge l'ensemble complet.Vous pouvez éventuellement, pour les cibles HTTP HTTP et App Engine, configurer un délai pour les tentatives de tâche. Si le gestionnaire de requêtes ne répond pas dans ce délai, la requête est annulée et la tentative est marquée comme ayant échoué. Cloud Scheduler relance la tâche en fonction de la configuration des nouvelles tentatives.
Pour créer et enregistrer le job, cliquez sur Créer.
Le job sera désormais exécuté à la fréquence spécifiée.
gcloud
Lorsque vous créez une tâche à l'aide de gcloud CLI, vous utilisez des commandes différentes 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 au public.
gcloud scheduler jobs create http JOB \ --location=LOCATION \ --schedule=SCHEDULE \ --uri=URI
Remplacez les éléments suivants :
JOB
: nom de tâche qui doit être unique dans le projet. Notez que vous ne pouvez pas réutiliser un nom de tâche dans un projet, même si vous supprimez la tâche associée.LOCATION
: emplacement dans lequel votre job doit s'exécuter.SCHEDULE
: fréquence ou intervalle de tâche, à laquelle la tâche doit être exécutée (par exemple,every 3 hours
). La chaîne que vous fournissez ici peut être n'importe quelle chaîne compatible avec unix-cron. Bien que nous ne recommandions plus son utilisation, l'ancienne syntaxe Cron App Engine est toujours compatible avec les tâches existantes.Pour en savoir plus, consultez la section Configurer des job Cron Cron.
URI
: URI complet du point de terminaison que la tâche contactera.
Les autres paramètres sont décrits dans la documentation de référence de la ligne de commande gcloud:
Vous pouvez éventuellement spécifier la méthode HTTP. La valeur par défaut est
POST
.Vous pouvez éventuellement spécifier 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
POST
ouPUT
est sélectionnée.Vous pouvez éventuellement définir des valeurs de nouvelle tentative, qui spécifient la manière dont la tâche App Engine doit être relancée en cas d'échec. Dans la plupart des cas, les valeurs par défaut seront suffisantes.
Pour créer une tâche 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 d'API Google.
gcloud scheduler jobs create pubsub JOB \ --location=LOCATION \ --schedule=SCHEDULE \ --topic=TOPIC
Remplacez les éléments suivants :
JOB
: nom de tâche qui doit être unique dans le projet. Notez que vous ne pouvez pas réutiliser un nom de tâche dans un projet, même si vous supprimez la tâche associée.LOCATION
: emplacement dans lequel votre job doit s'exécuter.SCHEDULE
: fréquence ou intervalle de tâche, à laquelle la tâche doit être exécutée (par exemple,every 3 hours
). La chaîne que vous fournissez ici peut être n'importe quelle chaîne compatible avec unix-cron. Bien que nous ne recommandions plus son utilisation, l'ancienne syntaxe Cron App Engine est toujours compatible avec les tâches existantes.Pour en savoir plus, consultez la section Configurer des job Cron Cron.
TOPIC
: nom du sujet dans lequel la tâche sera publiée. Utilisez l'option--message-body
ou--message-body-from-file
pour spécifier un message à envoyer au sujet. Il est envoyé en tant que paramètredata
dans le message Pub/Sub. Pour obtenir un exemple, consultez le quickstart.
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 cible 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 à l'aide de login: admin
au niveau de 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 tâche qui doit être unique dans le projet. Notez que vous ne pouvez pas réutiliser un nom de tâche dans un projet, même si vous supprimez la tâche associée.LOCATION
: emplacement dans lequel votre job doit s'exécuter. Il doit être identique à l'emplacement de votre application App Engine.SCHEDULE
: fréquence ou intervalle de tâche à laquelle la tâche doit être exécutée (par exemple,every 3 hours
). La chaîne que vous fournissez ici peut être n'importe quelle chaîne compatible avec unix-cron. Bien que nous ne recommandions plus son utilisation, l'ancienne syntaxe Cron App Engine est toujours compatible avec les tâches existantes.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:
Spécifiez l'URL relative du point de terminaison App Engine que la tâche contactera. Si vous utilisez la valeur par défaut
/
, le job utiliseraPROJECT-ID.appspot.com
, oùPROJECT-ID
correspond à l'ID de votre projet actuel.Spécifiez le nom du service App Engine qui exécute le gestionnaire pour la tâche Cloud Scheduler. Si cette valeur est omise, le service
default
est utilisé. Si vous souhaitez la définir, vous trouverez les noms des services dans la console Google Cloud.Vous pouvez éventuellement définir la méthode HTTP que vous souhaitez utiliser lors de l'exécution de la tâche. La valeur par défaut est
POST
.Vous pouvez éventuellement spécifier la version. Si cette règle n'est pas configurée, la version de diffusion en cours est utilisée. Vous pouvez consulter les versions disponibles dans la console Google Cloud.
Vous pouvez éventuellement spécifier l'instance. Si cette règle n'est pas configurée, n'importe quelle instance disponible peut être utilisée. Vous pouvez consulter les versions disponibles dans la console Google Cloud.
Vous pouvez éventuellement spécifier 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
POST
ouPUT
est sélectionnée.Vous pouvez éventuellement définir des valeurs de nouvelle tentative, qui spécifient la manière dont la tâche App Engine doit être relancée 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 à Cloud Scheduler.
Sélectionnez le job à modifier.
Cliquez sur Modifier.
Suivez les étapes pour définir la planification, configurer l'exécution et configurer les paramètres facultatifs lors de la création d'une tâche.
gcloud
Lorsque vous modifiez une tâche à l'aide de gcloud CLI, vous utilisez des commandes différentes 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 au public.
gcloud scheduler jobs update http JOB \ --location=LOCATION \ --schedule=SCHEDULE \ --uri=URI
Remplacez les éléments suivants :
JOB
: nom de tâche qui doit être unique dans le projet. Notez que vous ne pouvez pas réutiliser un nom de tâche dans un projet, même si vous supprimez la tâche associée.LOCATION
: emplacement dans lequel votre tâche s'exécute. Si vous ne spécifiez pas l'emplacement, la gcloud CLI utilisera votre emplacement par défaut. Si la tâche que vous souhaitez modifier se trouve à un autre emplacement, vous devez spécifier ce lieu en plus du champNAME
pour que votre tâche soit identifiée. Vous ne pouvez pas le mettre à jour.SCHEDULE
: fréquence ou intervalle de tâche, à laquelle la tâche doit être exécutée (par exemple,every 3 hours
). La chaîne que vous fournissez ici peut être n'importe quelle chaîne compatible avec unix-cron. Bien que nous ne recommandions plus son utilisation, l'ancienne syntaxe Cron App Engine est toujours compatible avec les tâches existantes.Pour en savoir plus, consultez la section Configurer des job Cron Cron.
URI
: URI complet du point de terminaison que la tâche contactera.
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 d'API Google.
gcloud scheduler jobs update pubsub JOB \ --location=LOCATION \ --schedule=SCHEDULE \ --topic=TOPIC
Remplacez les éléments suivants :
JOB
: nom de tâche qui doit être unique dans le projet. Notez que vous ne pouvez pas réutiliser un nom de tâche dans un projet, même si vous supprimez la tâche associée.LOCATION
: emplacement dans lequel votre tâche s'exécute. Si vous ne spécifiez pas l'emplacement, la gcloud CLI utilisera votre emplacement par défaut. Si la tâche que vous souhaitez modifier se trouve à un autre emplacement, vous devez spécifier ce lieu en plus du champNAME
pour que votre tâche soit identifiée. Vous ne pouvez pas le mettre à jour.SCHEDULE
: fréquence ou intervalle de tâche à laquelle la tâche doit être exécutée (par exemple,every 3 hours
). La chaîne que vous fournissez ici peut être n'importe quelle chaîne compatible avec unix-cron. Bien que nous ne recommandions plus son utilisation, l'ancienne syntaxe Cron App Engine est toujours compatible avec les tâches existantes.Pour en savoir plus, consultez la section Configurer des job Cron Cron.
TOPIC
: nom du sujet dans lequel la tâche sera publiée. Utilisez l'option--message-body
ou--message-body-from-file
pour spécifier un message à envoyer au sujet. Il est envoyé en tant que paramètredata
dans le message Pub/Sub. Pour obtenir un exemple, consultez le quickstart.
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 à l'aide de login: admin
au niveau de 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 tâche qui doit être unique dans le projet. Notez que vous ne pouvez pas réutiliser un nom de tâche dans un projet, même si vous supprimez la tâche associée.LOCATION
: emplacement dans lequel votre tâche s'exécute (identique à celui de votre application App Engine cible). Si vous ne spécifiez pas l'emplacement, la gcloud CLI utilisera votre emplacement par défaut. Si la tâche que vous souhaitez modifier se trouve à un autre emplacement, vous devez spécifier ce lieu en plus du champNAME
pour que votre tâche soit identifiée. Vous ne pouvez pas le mettre à jour.SCHEDULE
: fréquence ou intervalle de tâche à laquelle la tâche doit être exécutée (par exemple,every 3 hours
). La chaîne que vous fournissez ici peut être n'importe quelle chaîne compatible avec unix-cron. Bien que nous ne recommandions plus son utilisation, l'ancienne syntaxe Cron App Engine est toujours compatible avec les tâches existantes.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 Suspendre.
gcloud
Ouvrez une fenêtre de terminal sur la machine sur laquelle vous avez installé la gcloud CLI.
Exécutez la commande suivante :
gcloud scheduler jobs pause MY_JOB
Remplacez
MY_JOB
par le nom de la tâche à suspendre.
Lorsqu'une tâche est suspendue, vous pouvez également la modifier. Une fois la tâche modifiée, elle reste suspendue jusqu'à ce que vous la repreniez.
Reprendre une tâche
Vous pouvez reprendre l'exécution d'un job interrompu.
Console
Dans la console Google Cloud, accédez à Cloud Scheduler.
Sélectionnez le job à reprendre.
La tâche doit déjà être suspendue.
Cliquez sur Reprendre.
gcloud
Ouvrez une fenêtre de terminal sur la machine sur laquelle vous avez installé la gcloud CLI.
Exécutez la commande suivante :
gcloud scheduler jobs resume MY_JOB
Remplacez
MY_JOB
par le nom de la tâche à reprendre.
Supprimer une offre d'emploi
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 la machine sur laquelle vous avez installé la gcloud CLI.
Exécutez la commande suivante :
gcloud scheduler jobs delete MY_JOB
Remplacez
MY_JOB
par le nom de la tâche à supprimer.