Este documento explica como definir os recursos de VM para um job em lote do Batch especificando um modelo de instância de VM do Compute Engine ao criar o job.
Os tipos de recursos de VM em que um job é executado são definidos automaticamente pelo Batch, a menos que você os defina usando um dos seguintes métodos:
- Defina os recursos de VM de um job diretamente usando o campo
instances[].policy. Esse método é demonstrado na maioria da documentação do Batch. Defina os recursos de VM de um job usando um modelo com o campo
instances[].instanceTemplate. Esse é o método explicado neste documento.O uso de um modelo é necessário para especificar opções de VM para as quais o Batch não fornece campos de job. O uso de um modelo também pode ser conveniente quando você quer especificar os mesmos recursos de VM para vários jobs.
Antes de começar
- Se você nunca usou o Batch, consulte Introdução ao Batch e ative o Batch concluindo os pré-requisitos para projetos e usuários.
- Crie um modelo de instância ou identifique um modelo de instância atual.
-
Para receber as permissões necessárias para criar um job, peça ao administrador para conceder a você os seguintes papéis do IAM:
- Editor de jobs do Batch (
roles/batch.jobsEditor) no projeto - Usuário da conta de serviço (
roles/iam.serviceAccountUser) na conta de serviço do job, que, por padrão, é a conta de serviço padrão do Compute Engine -
Crie um job com base em um modelo de instância de VM do Compute Engine:
Leitor do Compute (
roles/compute.viewer) no modelo de instância de VM
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias com papéis personalizados ou outros papéis predefinidos.
- Editor de jobs do Batch (
Criar um job usando um modelo de instância de VM do Compute Engine
Esta seção fornece exemplos de como criar um job de script básico com base em um modelo de instância de VM atual. É possível criar um job com base em um modelo de instância de VM usando a CLI gcloud, a API Batch, Go, Java, Node.js, Python ou C++.
gcloud
Para criar um job com base em um modelo de instância de VM usando a
CLI gcloud, use o gcloud batch jobs submit comando
e especifique o modelo de instância de VM no arquivo de configuração JSON do job.
Por exemplo, para criar um job de script básico com base em um modelo de instância de VM:
Crie um arquivo JSON no diretório atual chamado
hello-world-instance-template.jsoncom o seguinte conteúdo:{ "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" } }Substitua:
INSTALL_GPU_DRIVERS: opcional. Quando definido comotrue, o Batch busca os drivers necessários para o tipo de GPU especificado no modelo de instância de VM do Compute Engine e os instala em seu nome. Para mais informações, consulte Como criar um job que usa uma GPU.INSTANCE_TEMPLATE_NAME: o nome de um modelo de instância de VM do Compute Engine atual. Saiba como criar e listar modelos de instância.
Execute este comando:
gcloud batch jobs submit example-template-job \ --location us-central1 \ --config hello-world-instance-template.json
API
Para criar um job básico usando a API Batch, use o
jobs.create método
e especifique um modelo de instância de VM no campo allocationPolicy.
Por exemplo, para criar jobs de script básicos com base em um modelo de instância de VM, use a seguinte solicitação:
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"
}
}
Substitua:
PROJECT_ID: o ID do projeto.INSTALL_GPU_DRIVERS: opcional. Quando definido comotrue, o Batch busca os drivers necessários para o tipo de GPU especificado no modelo de instância de VM do Compute Engine e os instala em seu nome. Para mais informações, consulte como criar um job que usa uma GPU.INSTANCE_TEMPLATE_NAME: o nome de um modelo de instância de VM do Compute Engine atual. Saiba como criar e listar modelos de instância.
Ir
Go
Para mais informações, consulte a documentação de referência da APIGo Batch.
Para autenticar no Batch, configure o Application Default Credentials. Se quiser mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Java
Para mais informações, consulte a API Java Batch documentação de referência.
Para autenticar no Batch, configure o Application Default Credentials. Se quiser mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Node.js
Para mais informações, consulte a documentação de referência da API Batch Node.js API reference documentation.
Para autenticar no Batch, configure o Application Default Credentials. Se quiser mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Python
Para mais informações, consulte a documentação de referência da APIPython Batch.
Para autenticar no Batch, configure o Application Default Credentials. Se quiser mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
C++
C++
Para mais informações, consulte a documentação de referência da API C++Batch.
Para autenticar no Batch, configure o Application Default Credentials. Se quiser mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
A seguir
- Se você tiver problemas para criar ou executar um job, consulte Solução de problemas.
- Ver jobs e tarefas.
- Saiba mais sobre as opções de criação de jobs.