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

Ce guide de démarrage rapide explique comment utiliser 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 job Cloud Scheduler.
  2. créer un job Cron à l'aide de Cloud Scheduler et configurer un calendrier récurrent 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. Connectez-vous à votre compte Google Cloud . Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits sans frais pour exécuter, tester et déployer des charges de travail.
  2. Installez la 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. Créez ou sélectionnez un projet Google Cloud .

    Rôles requis pour sélectionner ou créer un projet

    • Sélectionnez un projet : la sélection d'un projet ne nécessite pas de rôle IAM spécifique. Vous pouvez sélectionner n'importe quel projet pour lequel un rôle vous a été attribué.
    • Créer un projet : pour créer un projet, vous devez disposer du rôle Créateur de projet (roles/resourcemanager.projectCreator), qui contient l'autorisation resourcemanager.projects.create. Découvrez comment attribuer des rôles.
    • Créez un projet Google Cloud  :

      gcloud projects create PROJECT_ID

      Remplacez PROJECT_ID par le nom du projet Google Cloud que vous créez.

    • Sélectionnez le projet Google Cloud que vous avez créé :

      gcloud config set project PROJECT_ID

      Remplacez PROJECT_ID par le nom de votre projet Google Cloud .

  6. Si vous utilisez un projet existant pour ce guide, vérifiez que vous disposez des autorisations nécessaires pour suivre les instructions. Si vous avez créé un projet, vous disposez déjà des autorisations requises.

  7. Vérifiez que la facturation est activée pour votre projet Google Cloud .

  8. Activez les API Cloud Scheduler et Pub/Sub, si ce n'est pas déjà fait :

    Rôles requis pour activer les API

    Pour activer les API, vous devez disposer de l'autorisation serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation grâce au rôle Propriétaire (roles/owner). Sinon, vous pouvez obtenir cette autorisation grâce au rôle Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.

    gcloud services enable cloudscheduler.googleapis.com pubsub.googleapis.com
  9. Installez la Google Cloud CLI.

  10. 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.

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

    gcloud init
  12. Créez ou sélectionnez un projet Google Cloud .

    Rôles requis pour sélectionner ou créer un projet

    • Sélectionnez un projet : la sélection d'un projet ne nécessite pas de rôle IAM spécifique. Vous pouvez sélectionner n'importe quel projet pour lequel un rôle vous a été attribué.
    • Créer un projet : pour créer un projet, vous devez disposer du rôle Créateur de projet (roles/resourcemanager.projectCreator), qui contient l'autorisation resourcemanager.projects.create. Découvrez comment attribuer des rôles.
    • Créez un projet Google Cloud  :

      gcloud projects create PROJECT_ID

      Remplacez PROJECT_ID par le nom du projet Google Cloud que vous créez.

    • Sélectionnez le projet Google Cloud que vous avez créé :

      gcloud config set project PROJECT_ID

      Remplacez PROJECT_ID par le nom de votre projet Google Cloud .

  13. Si vous utilisez un projet existant pour ce guide, vérifiez que vous disposez des autorisations nécessaires pour suivre les instructions. Si vous avez créé un projet, vous disposez déjà des autorisations requises.

  14. Vérifiez que la facturation est activée pour votre projet Google Cloud .

  15. Activez les API Cloud Scheduler et Pub/Sub, si ce n'est pas déjà fait :

    Rôles requis pour activer les API

    Pour activer les API, vous devez disposer de l'autorisation serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation grâce au rôle Propriétaire (roles/owner). Sinon, vous pouvez obtenir cette autorisation grâce au rôle Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.

    gcloud services enable cloudscheduler.googleapis.com pubsub.googleapis.com

Rôles requis

Pour obtenir les autorisations nécessaires pour suivre ce guide de démarrage rapide, demandez à votre administrateur de vous accorder les rôles IAM suivants sur votre projet :

Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.

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 job, 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 job Cron, qui est envoyée à une cible Pub/Sub selon un calendrier récurrent. 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 jobs Cron.

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

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

Vous pouvez maintenant exécuter le job.

Exécuter votre tâche

En plus de l'exécuter selon le calendrier spécifié, vous pouvez forcer l'exécution immédiate de votre job :

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

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 bien les 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.

    Supprimer un projet Google Cloud  :

    gcloud projects delete PROJECT_ID

Vous pouvez également supprimer les ressources que vous avez créées pour ce guide de 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