Créer et exécuter un exemple de job
Découvrez comment créer et exécuter un exemple de job de traitement par lot qui transcode des vidéos à l'aide de Batch pour Google Cloud.
Pour obtenir des instructions détaillées sur cette tâche directement dans la console Google Cloud , cliquez sur Visite guidée :
Avant de commencer
- 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.
-
Installez la Google Cloud CLI.
-
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.
-
Pour initialiser la gcloud CLI, exécutez la commande suivante :
gcloud init -
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'autorisationresourcemanager.projects.create. Découvrez comment attribuer des rôles.
-
Créez un projet Google Cloud :
gcloud projects create PROJECT_ID
Remplacez
PROJECT_IDpar 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_IDpar le nom de votre projet Google Cloud .
-
Vérifiez que la facturation est activée pour votre projet Google Cloud .
Activez les API Batch, Compute Engine, Logging et Cloud Storage :
Rôles requis pour activer les API
Pour activer les API, vous avez besoin du rôle IAM Administrateur Service Usage (
roles/serviceusage.serviceUsageAdmin), qui contient l'autorisationserviceusage.services.enable. Découvrez comment attribuer des rôles.gcloud services enable batch.googleapis.com
compute.googleapis.com logging.googleapis.com storage.googleapis.com -
Installez la Google Cloud CLI.
-
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.
-
Pour initialiser la gcloud CLI, exécutez la commande suivante :
gcloud init -
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'autorisationresourcemanager.projects.create. Découvrez comment attribuer des rôles.
-
Créez un projet Google Cloud :
gcloud projects create PROJECT_ID
Remplacez
PROJECT_IDpar 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_IDpar le nom de votre projet Google Cloud .
-
Vérifiez que la facturation est activée pour votre projet Google Cloud .
Activez les API Batch, Compute Engine, Logging et Cloud Storage :
Rôles requis pour activer les API
Pour activer les API, vous avez besoin du rôle IAM Administrateur Service Usage (
roles/serviceusage.serviceUsageAdmin), qui contient l'autorisationserviceusage.services.enable. Découvrez comment attribuer des rôles.gcloud services enable batch.googleapis.com
compute.googleapis.com logging.googleapis.com storage.googleapis.com -
Assurez-vous que vous et le compte de service du job disposez des 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.
-
Pour obtenir les autorisations nécessaires pour suivre ce tutoriel, demandez à votre administrateur de vous accorder les rôles IAM suivants :
-
Pour créer, afficher et supprimer des jobs :
-
Éditeur de tâches par lot (
roles/batch.jobsEditor) sur le projet -
Utilisateur du compte de service (
roles/iam.serviceAccountUser) sur le compte de service Compute Engine par défaut
-
Éditeur de tâches par lot (
-
Pour créer, afficher et supprimer des buckets Cloud Storage :
Administrateur de l'espace de stockage (
roles/storage.admin) sur le projet -
Pour afficher les journaux des jobs :
Lecteur de journaux (
roles/logging.viewer) sur le 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.
-
Pour créer, afficher et supprimer des jobs :
-
Pour vous assurer que le compte de service Compute Engine par défaut dispose des autorisations nécessaires pour suivre ce tutoriel, demandez à votre administrateur d'attribuer les rôles IAM suivants au compte de service Compute Engine par défaut :
-
Responsable du signalement d'agent par lot (
roles/batch.agentReporter) sur le projet -
Pour permettre aux jobs d'accéder aux buckets Cloud Storage :
Administrateur de l'espace de stockage (
roles/storage.admin) sur le projet -
Pour permettre aux jobs de générer des journaux dans Logging :
Rédacteur de journaux (
roles/logging.logWriter) sur le projet
-
Responsable du signalement d'agent par lot (
-
-
Clonez le
dépôt Git Batch dans le répertoire actuel :
git clone https://github.com/GoogleCloudPlatform/batch-samples.git
-
Accédez au répertoire
transcoding:cd batch-samples/transcoding/
Préparer les entrées du job
Créez un bucket Cloud Storage :
gcloud storage buckets create gs://BUCKET_NAMERemplacez
BUCKET_NAMEpar un nom de bucket unique.Le résultat ressemble à ce qui suit :
Creating gs://BUCKET_NAME/...Copiez le script
transcode.shet le dossier contenant les fichiers vidéo dans votre bucket Cloud Storage :gcloud storage cp -R transcode.sh input gs://BUCKET_NAMELe 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
Dans l'éditeur de texte de votre choix, ouvrez le fichier de configuration
job.json.Définissez la valeur du champ
remotePathsur 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" } }Enregistrez les modifications et fermez l'éditeur de texte.
Créez le job
transcode:gcloud batch jobs submit transcode \ --config=job.json \ --location=us-central1Le 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
Dans la console Google Cloud , accédez à la page Liste des jobs.
Dans la colonne Nom du job, cliquez sur transcode.
La page "Job Details" (informations sur le job) s'ouvre alors.
Cliquez sur l'onglet Événements.
Dans la section Liste des événements, vous pouvez surveiller l'état du job
transcode. 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. Dans cet exemple, le job devrait se terminer dans un délai d'environ cinq minutes.Facultatif : Pour mettre à jour la page, cliquez sur Actualiser.
Avant de passer à l'étape suivante, assurez-vous que l'état du job est défini sur Réussi. Si votre job échoue, consultez plutôt la section Dépannage.
Afficher les vidéos encodées
Dans la console Google Cloud , accédez à la page Buckets.
Dans la colonne Nom, cliquez sur BUCKET_NAME.
La page Détails du bucket s'ouvre.
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.
Pour afficher la vidéo encodée, cliquez sur Aperçu, puis sur Lire.
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 le projet
Le moyen le plus simple d'empêcher la facturation est de supprimer le projet que vous avez utilisé dans ce tutoriel.
Supprimer un projet Google Cloud :
gcloud projects delete PROJECT_ID
Supprimer des ressources individuelles
Si vous souhaitez continuer à utiliser le projet actuel, supprimez les ressources individuelles utilisées dans ce tutoriel.
Supprimer le job
Une fois le job Batch terminé, supprimez le job 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'un job entraîne également la suppression de ses détails et de son historique. Les journaux du job sont automatiquement supprimés à la fin de la période de conservation des journaux Cloud Logging.
Supprimer le bucket
Si vous n'avez plus besoin du bucket Cloud Storage que vous avez utilisé dans ce tutoriel ni de son contenu, supprimez-le :
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
Étapes suivantes
Découvrez comment faire vos premiers pas avec Batch.
En savoir plus sur la création et l'exécution de jobs