Neste documento, explicamos como definir os recursos de um job em lote especificando um modelo de instância de VM do Compute Engine.
Também é possível definir os recursos de um job usando um dos seguintes métodos:
- Use o campo
policy
para definir os recursos de um job diretamente, como exemplificado em Criar um job básico. - Use o campo
instanceTemplate
para definir os recursos de um job especificando um modelo de instância de VM, conforme explicado nesta seção. Esse método é necessário para criar um job que use imagens de VM não padrão.
Antes de começar
- Se você nunca usou o Batch antes, analise os Primeiros passos com o Batch e ative o Batch preenchendo os pré-requisitos para projetos e usuários.
-
Para receber as permissões necessárias para criar um job, peça ao administrador para conceder a você os seguintes papéis de IAM:
-
Editor de job em lote (
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 como conceder papéis, consulte Gerenciar o acesso.
Também é possível conseguir as permissões necessárias com papéis personalizados ou outros papéis predefinidos.
-
Editor de job em lote (
Criar um job usando um modelo de instância de VM do Compute Engine
Nesta seção, fornecemos exemplos de como criar um job de script básico a partir de um modelo de instância de VM atual. É possível criar um job a partir de um modelo de instância de VM usando a CLI gcloud, a API Batch, Go, Java, Node.js ou Python.
gcloud
Para criar um job a partir de um modelo de instância de VM usando a CLI gcloud, use o comando gcloud batch jobs submit
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 a partir de um modelo de instância de VM:
Crie um arquivo JSON no diretório atual chamado
hello-world-instance-template.json
com 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 que você especifica no modelo de instância de VM do Compute Engine, e o Batch os instala em seu nome. Para mais informações, veja como criar um job que usa uma GPU.INSTANCE_TEMPLATE_NAME
: o nome de um modelo de instância de VM atual do Compute Engine. 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 método jobs.create
e especifique um modelo de instância de VM no campo allocationPolicy
.
Por exemplo, para criar jobs de script básicos a partir de 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 que você especifica no modelo de instância de VM do Compute Engine, e o Batch os instala em seu nome. Para mais informações, veja como criar um job que usa uma GPU.INSTANCE_TEMPLATE_NAME
: o nome de um modelo de instância de VM atual do Compute Engine. Saiba como criar e listar modelos de instância.
Go
Go
Para mais informações, consulte a documentação de referência da API Batch Go.
Java
Java
Para mais informações, consulte a documentação de referência da API Batch Java.
Node.js
Node.js
Para mais informações, consulte a documentação de referência da API Batch Node.js.
Python
Python
Para mais informações, consulte a documentação de referência da API Batch Python.
A seguir
- Se você tiver problemas para criar ou executar um job, consulte Solução de problemas.
- Visualizar jobs e tarefas.
- Saiba mais sobre as opções de criação de jobs.