Exécuter des jobs selon un calendrier

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

Rôles requis

Pour obtenir les autorisations nécessaires pour effectuer les opérations décrites sur cette page, demandez à votre administrateur de vous accorder les rôles IAM sur votre job Cloud Run :

Pour obtenir la liste des rôles et des autorisations IAM associés à Cloud Run, consultez les sections Rôles IAM Cloud Run et Autorisations IAM Cloud Run. Si votre job Cloud Run communique avec des API Google Cloud, telles que des bibliothèques clientes Cloud, consultez le guide de configuration de l'identité du service. Pour en savoir plus sur l'attribution de rôles, consultez les sections Autorisations de déploiement et Gérer les accès.

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 :