Planifier un workflow à l'aide de Cloud Scheduler

Cette page vous explique comment utiliser Cloud Scheduler pour exécuter un workflow selon un calendrier particulier, par exemple tous les lundis à 9h ou toutes les 15 minutes.

Avant de commencer

  1. Si vous ne disposez pas encore d'un workflow et que vous souhaitez planifier, créez-en un.
  2. Activez l'API Cloud Scheduler.

    Activer l'API

Planifier un workflow

  1. Pour que Cloud Scheduler puisse envoyer des requêtes à l'API Workflows, vous devez d'abord créer un compte de service:

    gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

    SERVICE_ACCOUNT_NAME est le nom que vous souhaitez attribuer à votre nouveau service.

  2. Accordez au compte qui exécutera vos commandes Cloud Scheduler l'autorisation d'utiliser votre compte de service.

  3. Attribuez à votre nouveau compte de service le rôle workflows.invoker pour lui permettre de déclencher votre workflow:

    gcloud projects add-iam-policy-binding PROJECT_NAME \
      --member serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_NAME.iam.gserviceaccount.com \
      --role roles/workflows.invoker

    Où :

    • PROJECT_NAME est le nom de votre projet Google Cloud.
    • SERVICE_ACCOUNT_NAME correspond au nom du compte de service que vous avez créé précédemment.
  4. Créez une tâche Cloud Scheduler qui déclenche votre workflow, en utilisant le compte de service que vous avez créé précédemment pour vous authentifier. Par exemple, pour planifier votre workflow pour qu'il s'exécute toutes les cinq minutes (en définissant l'intervalle à l'aide du format unix-cron):

    gcloud beta scheduler jobs create http JOB_NAME \
      --schedule="*/5 * * * *" \
      --uri="https://workflowexecutions.googleapis.com/v1/projects/PROJECT_NAME/locations/REGION_NAME/workflows/WORKFLOW_NAME/executions" \
      --time-zone="TIME_ZONE" \
      --oauth-service-account-email="SERVICE_ACCOUNT_NAME@PROJECT_NAME.iam.gserviceaccount.com"

    Où :

    • JOB_NAME est le nom que vous attribuez à la tâche Cloud Scheduler.
    • PROJECT_NAME est le nom de votre projet Google Cloud.
    • REGION_NAME est la région dans laquelle se trouve votre workflow, par exemple us-central1.
    • WORKFLOW_NAME est le nom du workflow dont vous souhaitez planifier l'exécution.
    • TIME_ZONE correspond au fuseau horaire que Cloud Scheduler doit utiliser pour interpréter la planification que vous fournissez.
    • SERVICE_ACCOUNT_NAME correspond au nom du compte de service que vous avez créé précédemment.

    Votre workflow s'exécute désormais toutes les cinq minutes.

Étape suivante