Créer et exécuter un exemple de job

Découvrez comment créer et exécuter un exemple de job de transcodage vidéo dans Batch.


Pour obtenir des instructions détaillées sur cette tâche directement dans la console Google Cloud, cliquez sur Visite guidée :

Visite guidée


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. To initialize the gcloud CLI, run the following command:

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

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

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Enable the Batch, Compute Engine, Logging and Cloud Storage APIs:

    gcloud services enable batch.googleapis.com compute.googleapis.com logging.googleapis.com storage.googleapis.com
  7. Install the Google Cloud CLI.
  8. To initialize the gcloud CLI, run the following command:

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

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

  10. Make sure that billing is enabled for your Google Cloud project.

  11. Enable the Batch, Compute Engine, Logging and Cloud Storage APIs:

    gcloud services enable batch.googleapis.com compute.googleapis.com logging.googleapis.com storage.googleapis.com
  12. Assurez-vous que le compte de service du job et vous-même disposez des autorisations les autorisations requises pour suivre ce tutoriel. Ce tutoriel utilise le compte de service par défaut pour un job, à savoir le compte de service Compute Engine par défaut.

  13. Clonez le dépôt Git de Batch dans le répertoire actuel :
    git clone https://github.com/GoogleCloudPlatform/batch-samples.git
  14. Accédez au répertoire transcoding :
    cd batch-samples/transcoding/

Préparer les entrées de la tâche

  1. Créez un bucket Cloud Storage :

    gcloud storage buckets create gs://BUCKET_NAME
    

    Remplacez BUCKET_NAME par un nom de bucket unique.

    Le résultat ressemble à ce qui suit :

    Creating gs://BUCKET_NAME/...
    
  2. Copiez le script transcode.sh et le dossier contenant les fichiers vidéo dans votre bucket Cloud Storage:

    gcloud storage cp -R transcode.sh input gs://BUCKET_NAME
    

    Le résultat ressemble à ce qui suit :

    Copying file://transcode.sh to gs://BUCKET_NAME/transcode.sh
    Copying file://input/video-2.mp4 to gs://BUCKET_NAME/input/video-2.mp4
    Copying file://input/video-1.mp4 to gs://BUCKET_NAME/input/video-1.mp4
    Copying file://input/video-0.mp4 to gs://BUCKET_NAME/input/video-0.mp4
      Completed files 4/4 | 37.5MiB/37.5MiB
    
    Average throughput: 48.4MiB/s
    

Créer un job

  1. Dans l'éditeur de texte de votre choix, ouvrez le fichier de configuration job.json.

  2. Définissez la valeur du champ remotePath sur le nom de votre bucket Cloud Storage :

    {
      "taskGroups": [
        {
          "taskSpec": {
            "runnables": [
              {
                "script": {
                  "text": "bash /mnt/share/transcode.sh"
                }
              }
            ],
            "computeResource": {
              "cpuMilli": 2000,
              "memoryMib": 2048
            },
            "volumes": [
              {
                "gcs": {
                  "remotePath": "BUCKET_NAME"
                },
                "mountPath": "/mnt/share"
              }
            ],
            "maxRetryCount": 2,
            "maxRunDuration": "600s"
          },
          "taskCount": 3,
          "parallelism": 3
        }
      ],
      "allocationPolicy": {
        "instances": [
          {
            "policy": {
              "machineType": "n2d-standard-4",
              "provisioningModel": "SPOT"
            }
          }
        ]
      },
      "labels": {
        "department": "creative",
        "env": "testing"
      },
      "logsPolicy": {
        "destination": "CLOUD_LOGGING"
      }
    }
    
  3. Enregistrez les modifications et fermez l'éditeur de texte.

  4. Créez la tâche transcode :

    gcloud batch jobs submit transcode \
        --config=job.json \
        --location=us-central1
    

    Le résultat ressemble à ce qui suit :

    Job transcode-7a1654ca-211c-40e8-b0fb-8a00 was successfully submitted.
    ...
    

    Le job exécute trois tâches simultanément. Chaque tâche exécute le script transcode.sh, qui encode l'un des trois fichiers vidéo et l'importe dans le bucket Cloud Storage.

Surveiller la tâche

  1. Dans la console Google Cloud, accédez à la page Liste des jobs.

    Accéder à la liste des jobs

  2. Dans la colonne Nom de la tâche, cliquez sur transcode.

    La page "Job Details" (informations sur le job) s'ouvre alors.

  3. Cliquez sur l'onglet Événements.

    Dans la section Liste des événements, vous pouvez surveiller l'état de transcode. tâche. Le temps nécessaire à la mise en file d'attente, à la planification et à l'exécution d'un job varie en fonction de plusieurs facteurs. Pour cet exemple, on peut s'attendre à ce que le poste en cinq minutes environ.

  4. Facultatif : Pour mettre à jour la page, cliquez sur Actualiser.

Avant de passer à l'étape suivante, assurez-vous que l'état de la tâche est défini sur Réussi. Si votre job échoue, consultez plutôt la section Dépannage.

Afficher les vidéos encodées

  1. Dans la console Google Cloud, accédez à la page Buckets.

    Accéder à la page "Buckets"

  2. Dans la colonne Nom, cliquez sur BUCKET_NAME.

    La page Informations sur le bucket s'ouvre.

  3. Dans la colonne Nom, cliquez sur output/, puis sur l'un des fichiers vidéo encodés.

    La page Détails de l'objet s'affiche.

  4. Pour afficher la vidéo encodée, cliquez sur Aperçu, puis sur Lire.

Effectuer un nettoyage

Pour éviter que les ressources utilisées sur cette page ne soient facturées sur votre compte Google Cloud, supprimez le projet Google Cloud contenant les ressources.

Supprimer le projet

Le moyen le plus simple d'empêcher la facturation est de supprimer le projet que vous avez utilisé dans cette tutoriel.

Delete a Google Cloud project:

gcloud projects delete PROJECT_ID

Supprimer des ressources individuelles

Si vous souhaitez continuer à utiliser le projet actuel, supprimez l'utilisateur les ressources utilisées dans ce tutoriel.

Supprimer le job

Une fois l'exécution de la tâche par lot terminée, supprimez la tâche transcode :

gcloud batch jobs delete transcode \
    --location=us-central1

Le résultat ressemble à ce qui suit :

Job projects/example-project/locations/us-central1/jobs/transcode deletion is in progress

La suppression d'une tâche entraîne également la suppression de ses détails et de son historique. Les journaux de la tâche sont automatiquement supprimés à la fin de la durée de conservation des journaux Cloud Logging.

Supprimer le bucket

Si vous n'avez plus besoin du bucket Cloud Storage utilisé dans ce ce tutoriel et son contenu, supprimez le bucket:

gcloud storage rm gs://BUCKET_NAME \
    --recursive

Le résultat ressemble à ce qui suit :

Removing objects:
Removing gs://BUCKET_NAME/input/video-0.mp4#1694788495332395...
Removing gs://BUCKET_NAME/input/video-2.mp4#1694788495296173...
Removing gs://BUCKET_NAME/input/video-1.mp4#1694788495228839...
Removing gs://BUCKET_NAME/output/video-0.mp4#1694788495332395...
Removing gs://BUCKET_NAME/output/video-2.mp4#1694788495296173...
Removing gs://BUCKET_NAME/output/video-1.mp4#1694788495228839...
Removing gs://BUCKET_NAME/transcode.sh#1694788495039427...
  Completed 4/4
Removing Buckets:
Removing gs://BUCKET_NAME/...
  Completed 1/1

Supprimer le dépôt Git

Si vous n'avez plus besoin du dépôt Git Batch que vous avez cloné pour ce tutoriel, vous pouvez le supprimer :

cd ../../ && rm -rf batch-samples

Étape suivante