Ce document explique comment définir les ressources d'une tâche par lot en spécifiant un modèle d'instance de VM Compute Engine.
Vous pouvez éventuellement définir les ressources d'une tâche à l'aide de l'une des méthodes suivantes:
- Utilisez le champ
policy
pour définir directement les ressources d'une tâche, comme illustré dans la section Créer une tâche de base. - Utilisez le champ
instanceTemplate
pour définir les ressources d'une tâche en spécifiant un modèle d'instance de VM, comme expliqué dans cette section. Cette méthode est nécessaire pour créer une tâche qui utilise des images de VM autres que celles par défaut.
Avant de commencer
- Si vous n'avez jamais utilisé Batch, consultez la page Premiers pas avec Batch et activez-la en remplissant les conditions préalables pour les projets et les utilisateurs.
-
Pour obtenir les autorisations nécessaires pour créer une tâche, demandez à votre administrateur de vous attribuer les rôles IAM suivants:
-
É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 de la tâche, qui est le compte de service Compute Engine par défaut par défaut -
Créez une tâche à partir d'un modèle d'instance de VM Compute Engine :
Lecteur Compute (
roles/compute.viewer
) sur le modèle d'instance de VM
Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
-
Éditeur de tâches par lot (
Créer une tâche à l'aide d'un modèle d'instance de VM Compute Engine
Cette section fournit des exemples illustrant comment créer une tâche de script de base à partir d'un modèle d'instance de VM existant. Vous pouvez créer une tâche à partir d'un modèle d'instance de VM à l'aide de gcloud CLI, de l'API Batch, de Go, de Java, de Node.js ou de Python.
gcloud
Pour créer une tâche à partir d'un modèle d'instance de VM à l'aide de gcloud CLI, exécutez la commande gcloud batch jobs submit
et spécifiez le modèle d'instance de VM dans le fichier de configuration JSON de la tâche.
Par exemple, pour créer une tâche de script de base à partir d'un modèle d'instance de VM:
Dans le répertoire actuel, créez un fichier JSON nommé
hello-world-instance-template.json
avec le contenu suivant:{ "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "echo Hello world! This is task ${BATCH_TASK_INDEX}. This job has a total of ${BATCH_TASK_COUNT} tasks." } } ], "computeResource": { "cpuMilli": 2000, "memoryMib": 16 }, "maxRetryCount": 2, "maxRunDuration": "3600s" }, "taskCount": 4, "parallelism": 2 } ], "allocationPolicy": { "instances": [ { "installGpuDrivers" INSTALL_GPU_DRIVERS, "instanceTemplate": "INSTANCE_TEMPLATE_NAME" } ] }, "labels": { "department": "finance", "env": "testing" }, "logsPolicy": { "destination": "CLOUD_LOGGING" } }
Remplacez les éléments suivants :
INSTALL_GPU_DRIVERS
: facultatif. Lorsque ce paramètre est défini surtrue
, Batch récupère les pilotes requis pour le type de GPU que vous spécifiez dans votre modèle d'instance de VM Compute Engine, et les installe en votre nom. Pour en savoir plus, découvrez comment créer une tâche qui utilise un GPU.INSTANCE_TEMPLATE_NAME
: nom d'un modèle d'instance de VM Compute Engine existant. Découvrez comment créer et répertorier les modèles d'instances.
Exécutez la commande suivante :
gcloud batch jobs submit example-template-job \ --location us-central1 \ --config hello-world-instance-template.json
API
Pour créer une tâche de base à l'aide de l'API Batch, utilisez la méthode jobs.create
et spécifiez un modèle d'instance de VM dans le champ allocationPolicy
.
Par exemple, pour créer des tâches de script de base à partir d'un modèle d'instance de VM, utilisez la requête suivante:
POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/jobs?job_id=example-script-job
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
"script": {
"text": "echo Hello world! This is task ${BATCH_TASK_INDEX}. This job has a total of ${BATCH_TASK_COUNT} tasks."
}
}
],
"computeResource": {
"cpuMilli": 2000,
"memoryMib": 16
},
"maxRetryCount": 2,
"maxRunDuration": "3600s"
},
"taskCount": 4,
"parallelism": 2
}
],
"allocationPolicy": {
"instances": [
{
"installGpuDrivers" INSTALL_GPU_DRIVERS,
"instanceTemplate": "INSTANCE_TEMPLATE_NAME"
}
]
},
"labels": {
"department": "finance",
"env": "testing"
},
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
Remplacez les éléments suivants :
PROJECT_ID
: ID de votre projet.INSTALL_GPU_DRIVERS
: facultatif. Lorsque ce paramètre est défini surtrue
, Batch récupère les pilotes requis pour le type de GPU que vous spécifiez dans votre modèle d'instance de VM Compute Engine, et il les installe en votre nom. Pour en savoir plus, découvrez comment créer une tâche qui utilise un GPU.INSTANCE_TEMPLATE_NAME
: nom d'un modèle d'instance de VM Compute Engine existant. Découvrez comment créer et lister des modèles d'instance.
Go
Go
Pour en savoir plus, consultez la documentation de référence de l'API par lot Go.
Java
Java
Pour en savoir plus, consultez la documentation de référence de l'API par lot Java.
Node.js
Node.js
Pour en savoir plus, consultez la documentation de référence de l'API par lot Node.js.
Python
Python
Pour en savoir plus, consultez la documentation de référence de l'API par lot Python.
Étapes suivantes
- Si vous rencontrez des problèmes lors de la création ou de l'exécution d'une tâche, consultez Dépannage.
- Afficher les tâches et les tâches
- En savoir plus sur les options de création de tâches