Planifier et exécuter une job Cron à l'aide de la gcloud CLI

Ce guide de démarrage rapide vous explique comment utiliser la gcloud CLI pour effectuer des opérations de base avec Cloud Scheduler.

Dans le cadre de ce guide démarrage rapide, vous allez effectuer les étapes suivantes :

  1. Créez un sujet Pub/Sub à configurer comme cible de votre tâche Cloud Scheduler.
  2. Créez un job Cron à l'aide de Cloud Scheduler et configurez une planification récurrente pour le job.
  3. Exécutez votre job.
  4. vérifier que la tâche a bien été exécutée.

Une version sans frais de Cloud Scheduler est disponible. Par conséquent, l'exécution de ce démarrage rapide ne vous coûtera rien. Pour en savoir plus, reportez-vous à la page Tarifs.

Avant de commencer

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Install the Google Cloud CLI.

  3. Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

  4. Pour initialiser la gcloud CLI, exécutez la commande suivante :

    gcloud init
  5. Create or select a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Cloud Scheduler, Pub/Sub APIs:

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable cloudscheduler.googleapis.com pubsub.googleapis.com
  8. Install the Google Cloud CLI.

  9. Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

  10. Pour initialiser la gcloud CLI, exécutez la commande suivante :

    gcloud init
  11. Create or select a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  12. Verify that billing is enabled for your Google Cloud project.

  13. Enable the Cloud Scheduler, Pub/Sub APIs:

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable cloudscheduler.googleapis.com pubsub.googleapis.com
  14. Créer un sujet et un abonnement Pub/Sub

    Un sujet Pub/Sub est une ressource à laquelle les éditeurs peuvent envoyer des messages. Pour recevoir des messages publiés dans un sujet, vous devez créer un abonnement associé à ce sujet.

    1. Configurez un sujet Pub/Sub à utiliser comme cible pour votre tâche Cron :

      gcloud pubsub topics create cron-topic
      

      Cette opération crée un sujet appelé cron-topic.

    2. Pour recevoir des messages et afficher les résultats de votre tâche, créez un abonnement Pub/Sub :

      gcloud pubsub subscriptions create cron-sub --topic cron-topic
      

    Créer un job Cron à l'aide de Cloud Scheduler

    Utilisez la commande gcloud scheduler jobs create pubsub pour configurer une unité de travail appelée tâche Cron, qui est envoyée à une cible Pub/Sub selon une planification récurrente. La planification est spécifiée à l'aide d'un format basé sur unix-cron. Pour en savoir plus, consultez Format et fuseau horaire des tâches Cron.

    gcloud scheduler jobs create pubsub my-cron-job \
        --schedule="30 16 * * 7" \
        --topic=cron-topic \
        --location="us-central1" \
        --message-body="Hello world"
    

    Vous avez créé une tâche qui envoie un message "Hello world" à votre sujet Pub/Sub à 16h30 le dimanche.

    Vous pouvez maintenant exécuter le job.

    Exécuter votre tâche

    En plus de l'exécution selon la planification spécifiée, vous pouvez forcer l'exécution immédiate de votre job :

    gcloud scheduler jobs run my-cron-job --location="us-central1"
    

    Notez qu'en raison d'une configuration initiale, l'exécution de la première tâche créée dans un projet peut prendre quelques minutes.

    Vous pouvez ensuite vérifier que votre sujet Pub/Sub a bien reçu le message.

    Vérifier les résultats dans Pub/Sub

    Vérifiez que votre sujet Pub/Sub reçoit des messages de votre job.

    1. Extrayez des messages Pub/Sub d'un abonnement :

      gcloud pubsub subscriptions pull cron-sub --limit 5
      

      Si aucun message n'a été initialement récupéré, exécutez de nouveau la commande.

    2. Consultez les résultats de l'exécution de votre tâche. Le résultat doit ressembler à ce qui suit :

      DATA: Hello world!
      MESSAGE_ID: 5028933846601543
      ORDERING_KEY:
      ATTRIBUTES:
      DELIVERY_ATTEMPT:
      ACK_ID: RFAGFixdRkhRNxkIaFEOT14jPzUgKEUQAgVPAihdeTFXLkFacGhRDRlyfWB9[...]
      

    Effectuer un nettoyage

    Pour éviter que les ressources utilisées dans cette démonstration soient facturées sur votre compte Google Cloud , supprimez le projet Google Cloud qui les contient.

      Delete a Google Cloud project:

      gcloud projects delete PROJECT_ID

    Vous pouvez également supprimer les ressources que vous avez créées pour ce démarrage rapide :

    1. Supprimez le job Cron. Dans Cloud Shell ou sur la machine sur laquelle vous avez installé la gcloud CLI, exécutez la commande suivante :

      gcloud scheduler jobs delete MY_JOB \
          --location="LOCATION"
      

      Remplacez les éléments suivants :

      • MY_JOB : nom du job à supprimer.
      • LOCATION : emplacement du job. Par défaut, utilise l'emplacement de l'application App Engine du projet actuel s'il existe une application associée.
    2. Supprimez le sujet Pub/Sub. Dans Cloud Shell ou sur la machine sur laquelle vous avez installé la gcloud CLI, exécutez la commande suivante :

      gcloud pubsub topics delete TOPIC_ID
      

      Remplacez TOPIC_ID par l'ID du sujet Pub/Sub à supprimer.

    3. Supprimez l'abonnement Pub/Sub. Dans Cloud Shell ou sur la machine sur laquelle vous avez installé gcloud CLI, exécutez la commande suivante :

      gcloud pubsub subscriptions delete SUBSCRIPTION_ID
      

      Remplacez SUBSCRIPTION_ID par l'ID de l'abonnement Pub/Sub à supprimer.

    Étapes suivantes