Ce document explique comment définir les ressources de VM pour une tâche de traitement par lot en spécifiant un modèle d'instance de VM Compute Engine lorsque vous créez la tâche.
Les types de ressources VM sur lesquels un job s'exécute sont automatiquement définis par Batch, sauf si vous les définissez à l'aide de l'une des méthodes suivantes:
- Définissez directement les ressources de VM d'une tâche à l'aide du champ
instances[].policy
. Cette méthode est illustrée dans la plupart des documents Batch. Définissez les ressources de VM d'une tâche à l'aide d'un modèle à l'aide du champ
instances[].instanceTemplate
. C'est la méthode expliquée dans ce document.L'utilisation d'un modèle est obligatoire pour spécifier les options de VM pour lesquelles Batch ne fournit pas de champs de tâche. L'utilisation d'un modèle peut également être pratique lorsque vous souhaitez spécifier les mêmes ressources de VM pour plusieurs jobs.
Avant de commencer
- Si vous n'avez jamais utilisé Batch, consultez Premiers pas avec Batch et activez Batch en remplissant les conditions préalables pour les projets et les utilisateurs.
- Créez un modèle d'instance ou identifiez un modèle d'instance existant.
-
Pour obtenir les autorisations nécessaires pour créer un job, demandez à votre administrateur de vous accorder 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 par défaut le compte de service Compute Engine par défaut -
Créez une tâche à partir d'un modèle d'instance de VM Compute Engine :
Aperçu Compute Viewer (
roles/compute.viewer
) sur le modèle d'instance de VM
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
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 de création d'une tâche de script de base à partir d'un modèle d'instance de VM existant. Vous pouvez créer un job à partir d'un modèle d'instance de VM à l'aide de la gcloud CLI, de l'API Batch, de Go, de Java, de Node.js, de Python ou de C++.
gcloud
Pour créer une tâche à partir d'un modèle d'instance de VM à l'aide de gcloud CLI, utilisez 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:
Créez un fichier JSON dans le répertoire actuel 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 la valeur esttrue
, Batch récupère les pilotes requis pour le type de GPU que vous spécifiez dans le modèle d'instance de VM Compute Engine, puis 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.
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 projet de votre projet.INSTALL_GPU_DRIVERS
: facultatif. Lorsque la valeur esttrue
, 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, puis 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 Go par lot.
Pour vous authentifier auprès de Batch, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Java
Pour en savoir plus, consultez la documentation de référence de l'API Java par lot.
Pour vous authentifier auprès de Batch, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Node.js
Pour en savoir plus, consultez la documentation de référence de l'API Node.js par lot.
Pour vous authentifier auprès de Batch, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Python
Pour en savoir plus, consultez la documentation de référence de l'API Python par lot.
Pour vous authentifier auprès de Batch, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
C++
C++
Pour en savoir plus, consultez la documentation de référence de l'API C++ par lot.
Pour vous authentifier auprès de Batch, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Étape suivante
- Si vous rencontrez des difficultés pour créer ou exécuter une tâche, consultez la section Dépannage.
- Afficher les jobs et les tâches
- Découvrez d'autres options de création de tâches.