Workflow utilisant Cloud Scheduler

Dans ce document, vous utilisez les composants facturables suivants de Google Cloud :

  • Dataproc
  • Instance
  • Cloud Scheduler

Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût. Les nouveaux utilisateurs de Google Cloud peuvent bénéficier d'un essai gratuit.

Avant de commencer

Configurer votre projet

  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 gratuits pour exécuter, tester et déployer des charges de travail.
  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

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

  4. Activer les API Dataproc, Compute Engine, and Cloud Scheduler .

    Activer les API

  5. Installez Google Cloud CLI.
  6. Pour initialiser gcloudCLI, exécutez la commande suivante :

    gcloud init
  7. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

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

  9. Activer les API Dataproc, Compute Engine, and Cloud Scheduler .

    Activer les API

  10. Installez Google Cloud CLI.
  11. Pour initialiser gcloudCLI, exécutez la commande suivante :

    gcloud init

Créer un rôle personnalisé

  1. Ouvrez la page IAM et administration → Rôles dans la console Google Cloud.
    1. Cliquez sur CRÉER UN RÔLE pour ouvrir la page Créer un rôle.
    2. Renseignez les champs "Titre", "Description", "ID" et "Étape de lancement". Suggestion : utilisez "Créer un modèle de workflow Dataproc" comme titre de rôle.
    3. Cliquez sur AJOUTER DES AUTORISATIONS.
      1. Dans le formulaire Ajouter des autorisations, cliquez sur Filtrer, puis sélectionnez "Autorisation". Complétez le filtre pour afficher "Permission: dataproc.workflowTemplates.instantiate".
      2. Cochez la case située à gauche de l'autorisation répertoriée, puis cliquez sur AJOUTER.
    4. Sur la page "Créer un rôle", cliquez à nouveau sur "Ajouter des autorisations" pour répéter les sous-étapes précédentes afin d'ajouter l'autorisation "iam.serviceAccounts.actAs" au rôle personnalisé. La page Créer un rôle répertorie désormais deux autorisations.
    5. Cliquez sur CREATE (Créer) sur la page Custom Role (Rôle personnalisé). Le rôle personnalisé est répertorié sur la page Roles (Rôles).

Créer un compte de service

  1. Dans Google Cloud Console, accédez à la page Comptes de service.

    Accéder à la page "Comptes de service"

  2. Sélectionnez votre projet.

  3. Cliquez sur + Create service account (+ Créer un compte de service).

  4. Dans le champ Nom du compte de service, saisissez le nom workflow-scheduler. La console Google Cloud remplit le champ ID de compte de service avec ce nom.

  5. Facultatif : dans le champ Description du compte de service, saisissez une description du compte de service.

  6. Cliquez sur Créer et continuer.

  7. Cliquez sur le champ Sélectionner un rôle, puis choisissez le rôle personnalisé Créer un modèle de workflow Dataproc que vous avez créé à l'étape précédente.

  8. Cliquez sur Continuer.

  9. Dans le champ Rôle d'administrateur de compte de service, saisissez l'adresse e-mail de votre compte Google.

  10. Cliquez sur OK pour terminer la création du compte de service.

Créer un modèle de workflow

Copiez et exécutez les commandes répertoriées ci-dessous dans une fenêtre de terminal local ou dans Cloud Shell pour créer et définir un modèle de workflow.

Remarques :

  • Les commandes spécifient la région "us-central1". Vous pouvez spécifier une autre région ou supprimer l'option --region si vous avez déjà exécuté gcloud config set compute/region pour définir la propriété de région.
  • La séquence "-- " (tiret, tiret, espace) de la commande add-job transmet l'argument 1000 à la tâche SparkPi qui spécifie le nombre d'échantillons à utiliser pour estimer la valeur de Pi.

  1. Créez le modèle de workflow.

    gcloud dataproc workflow-templates create sparkpi \
        --region=us-central1
    
  2. Ajoutez la tâche spark au modèle de workflow sparkpi. L'ID d'étape "compute" est requis et identifie la tâche SparkPi ajoutée.
    gcloud dataproc workflow-templates add-job spark \
        --workflow-template=sparkpi \
        --step-id=compute \
        --class=org.apache.spark.examples.SparkPi \
        --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \
        --region=us-central1 \
        -- 1000
    

  3. Utilisez un cluster géré à nœud unique pour exécuter le workflow. Dataproc crée le cluster, y exécute le workflow, puis le supprime une fois le workflow terminé.

    gcloud dataproc workflow-templates set-managed-cluster sparkpi \
        --cluster-name=sparkpi \
        --single-node \
        --region=us-central1
    

  4. Cliquez sur le nom sparkpi sur la page Workflows Dataproc dans la console Google Cloud pour ouvrir la page Détails du modèle de workflow. Confirmez les attributs du modèle sparkpi.

Créer une tâche Cloud Scheduler

  1. Ouvrez la page Cloud Scheduler dans la console Google Cloud (vous devrez peut-être sélectionner votre projet pour ouvrir cette page). Cliquez sur CRÉER UNE TÂCHE.

  2. Saisissez ou sélectionnez les informations suivantes sur la tâche :

    1. Sélectionnez une région : "us-central" ou toute autre région dans laquelle vous avez créé votre modèle de workflow.
    2. Nom : "Sparkpi"
    3. Fréquence : sélectionnez "* * * *" pour une exécution toutes les minutes, sélectionnez "0 9 * * 1" pour une exécution tous les lundis à 9 heures. Consultez la page Définir le calendrier de tâche pour les autres valeurs unix-cron. Remarque:Vous pouvez cliquer sur un bouton "EXÉCUTER MAINTENANT" dans la section Tâches de Cloud Scheduler de la console Google Cloud pour exécuter et tester votre tâche, quelle que soit la fréquence que vous avez définie.
    4. Fuseau horaire : sélectionnez un fuseau (timezone). Saisissez "United States" (États-Unis) pour répertorier les fuseaux horaires américains.
    5. Cible : "HTTP"
    6. URL : insérez l'URL suivante après avoir spécifié your-project-id. Si vous avez créé votre modèle de workflow dans une région autre que "us-central1", remplacez cet élément. Cette URL appelle l'API Dataproc workflowTemplates.instantiate pour exécuter votre modèle de workflow Sparkpi.
      https://dataproc.googleapis.com/v1/projects/your-project-id/regions/us-central1/workflowTemplates/sparkpi:instantiate?alt=json
      
    7. Méthode HTTP:
      1. "POST"
      2. Body: "{}"
    8. Auth header:
      1. "Ajouter un jeton OAuth"
      2. Compte de service : insérez le paramètre service account address du compte de service que vous avez créé pour ce tutoriel. Vous pouvez utiliser l'adresse de compte suivante après avoir inséré your-project-id :
        workflow-scheduler@your-project-id.iam.gserviceaccount
        
      3. Champ d'application : vous pouvez ignorer ce champ.
    9. Cliquez sur CREATE (Créer).

Tester une tâche de workflow planifiée

  1. Sur la ligne de la tâche sparkpi de la page Tâches Cloud Scheduler, cliquez sur "Exécuter".

  2. Attendez quelques minutes, puis ouvrez la page Workflows de Dataproc pour vérifier que le workflow sparkpi est terminé.

  3. Une fois le cluster géré supprimé, les détails de la tâche sont conservés dans la console Google Cloud. Cliquez sur la tâche compute... répertoriée sur la page Tâches Dataproc pour afficher les détails de la tâche de workflow.

Nettoyer

Une fois terminé, le workflow de ce tutoriel supprime son cluster géré. Le fait de conserver le workflow vous permet de le relancer sans frais supplémentaires. Vous pouvez supprimer les autres ressources créées dans ce tutoriel pour éviter des coûts récurrents.

Supprimer un projet

  1. Dans la console Google Cloud, accédez à la page Gérer les ressources.

    Accéder à la page Gérer les ressources

  2. Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
  3. Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.

Supprimer votre modèle de workflow

gcloud dataproc workflow-templates delete sparkpi \
    --region=us-central1

Supprimer une tâche Cloud Scheduler

Ouvrez la page Jobs Cloud Scheduler de la console Google Cloud, cochez la case située à gauche de la fonction sparkpi, puis cliquez sur SUPPRIMER.

Supprimer un compte de service

Ouvrez la page IAM et administration → Comptes de service dans la console Google Cloud, cochez la case située à gauche du compte de service workflow-scheduler..., puis cliquez sur SUPPRIMER.

Étapes suivantes