Exécuter des tâches selon un calendrier

Cette page explique comment exécuter des tâches Cloud Run de manière planifiée en utilisant Cloud Scheduler.

Avant de commencer

Créez un job Cloud Run.

Configurer un job Cloud Run pour qu'il s'exécute selon une programmation

Pour exécuter un job Cloud Run selon une programmation :

Console

  1. Accéder aux tâches Cloud Run

  2. Cliquez sur le job que vous souhaitez exécuter selon une programmation.

  3. Cliquez sur l'onglet Triggers (Déclencheurs).

  4. Cliquez sur Ajouter un déclencheur de programmeur.

  5. Si vous n'avez pas encore activé l'API Cloud Scheduler pour votre projet, vous êtes invité à le faire dans le panneau tout à droite : cliquez sur Activer l'API.

  6. Renseignez le formulaire de programmation de job Cloud Scheduler

    Image

  7. Sous Définir un calendrier :

    1. Attribuez un nom à votre job Cloud Scheduler.

    2. Sélectionnez une région pour votre tâche Cloud Scheduler. Ce nom ne doit pas nécessairement correspondre à la région utilisée pour la tâche Cloud Run.

    3. Spécifiez la fréquence d'exécution de votre job en utilisant le format unix-cron. Par exemple, 0 12 * * *.

    4. Sélectionnez votre fuseau horaire.

  8. Cliquez sur Continuer.

  9. Dans le menu déroulant Compte de service, sélectionnez un compte de service autorisé à appeler le service Cloud Run actuel.

  10. Cliquez sur Créer pour créer le job Cloud Scheduler qui va exécuter le job Cloud Run à la fréquence spécifiée.

Ligne de commande

  1. Assurez-vous d'abord de créer un job Cloud Run.

  2. Exécutez la commande suivante :

    gcloud scheduler jobs create http SCHEDULER_JOB_NAME \
      --location SCHEDULER_REGION \
      --schedule="SCHEDULE" \
      --uri="https://CLOUD_RUN_REGION-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/PROJECT-ID/jobs/JOB-NAME:run" \
      --http-method POST \
      --oauth-service-account-email PROJECT-NUMBER-compute@developer.gserviceaccount.com

    Remplacer

    • SCHEDULER_JOB_NAME par le nom que vous souhaitez donner à votre tâche planifiée.
    • SCHEDULER_REGION par une région compatible avec Cloud Scheduler. Par exemple, europe-west2.
    • CLOUD_RUN_REGION par la région de votre tâche Cloud Run. Pour prévisualiser, utilisez europe-west9.
    • SCHEDULE par la fréquence souhaitée, par exemple 0 12 * * *.
    • PROJECT-ID par votre ID de projet.
    • PROJECT-NUMBER par votre numéro de projet.
    • JOB-NAME par votre tâche Cloud Run.

Terraform

Pour créer un job Cloud Scheduler qui exécute un job Cloud Run, procédez comme suit :

resource "google_cloud_scheduler_job" "job" {
  provider         = google-beta
  name             = "schedule-job"
  description      = "test http job"
  schedule         = "*/8 * * * *"
  attempt_deadline = "320s"
  region           = "us-central1"
  project          = data.google_project.project.project_id

  retry_config {
    retry_count = 3
  }

  http_target {
    http_method = "POST"
    uri         = "https://${google_cloud_run_v2_job.default.location}-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/${data.google_project.project.number}/jobs/${google_cloud_run_v2_job.default.name}:run"

    oauth_token {
      service_account_email = google_service_account.cloud_run_invoker_sa.email
    }
  }

  depends_on = [resource.google_project_service.cloudscheduler_api, resource.google_cloud_run_v2_job.default, resource.google_cloud_run_v2_job_iam_binding.binding]
}

Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base.

Cloud Scheduler exécute la tâche Cloud Run à la fréquence spécifiée.

Étapes suivantes

Après avoir utilisé cette fonctionnalité, vous pouvez effectuer les opérations suivantes :