Nesta página, descrevemos como especificar a imagem do sistema operacional (SO) para as instâncias de máquina virtual (VM) em que um job é executado. Se você também quiser personalizar outras propriedades dos discos de inicialização do job, consulte Criar e executar um job que usa discos de inicialização personalizados em vez disso.
Para saber mais sobre imagens de SO de VM e quais imagens de SO de VM podem ser usadas, consulte Visão geral do ambiente de SO de VM.
Antes de começar
- Se você nunca usou o Batch, leia Começar a usar o Batch e ative o serviço concluindo 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 do IAM:
-
Editor de jobs 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
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 por meio de papéis personalizados ou de outros papéis predefinidos.
-
Editor de jobs em lote (
Criar e executar um job que usa uma imagem de SO de VM específica
Especifique a imagem do SO da VM ao criar um job selecionando um dos seguintes métodos:
- Use um modelo de instância do Compute Engine que especifique uma imagem do SO da VM. Se você quiser usar um modelo de instância de VM ao criar esse job, especifique a imagem do SO da VM no modelo de instância de VM. Para instruções, consulte Definir recursos de job usando um modelo de instância de VM.
Use o campo "Imagem do SO da VM". Conforme explicam as instruções a seguir, é possível especificar a imagem do SO da VM no campo
image
usando a CLI gcloud ou a API Batch.
gcloud
Crie um arquivo JSON que especifique os detalhes de configuração do job. Para especificar a imagem do SO da VM para o job, inclua o campo
image
.Por exemplo, para criar um job de script básico que usa uma imagem de SO de VM específica, crie um arquivo JSON com o seguinte conteúdo:
{ "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "echo Hello world from task ${BATCH_TASK_INDEX}." } } ] }, "taskCount": 3, "parallelism": 1 } ], "allocationPolicy": { "instances": [ { "policy": { "bootDisk": { "image": "VM_OS_IMAGE_URI" } } } ] }, "logsPolicy": { "destination": "CLOUD_LOGGING" } }
Substitua
VM_OS_IMAGE_URI
por um nome de recurso relativo da imagem do SO da VM. Use uma das seguintes opções:Especifique um prefixo do SO em lote. Para usar a imagem mais recente de um SO do Batch específico, use o seguinte formato:
BATCH_OS_PREFIX
Substitua
BATCH_OS_PREFIX
por um dos prefixos de imagem do SO da VM em lote. Por exemplo,batch-debian
é o prefixo do SO Debian em lote.Especifique uma família de imagens. Para usar a imagem mais recente de uma família de imagens específica, use o seguinte formato:
projects/IMAGE_PROJECT_ID/global/images/family/IMAGE_FAMILY
Substitua:
IMAGE_PROJECT_ID
: o ID do projeto que contém a imagem. Por exemplo, para todas as imagens em lote, especifiquebatch-custom-image
.IMAGE_FAMILY
: a família de imagens, que inclui uma ou mais imagens específicas e representa o tipo e a versão principal do SO. Por exemplo, para ver todas as famílias de imagens do SO da VM do Batch, confira uma lista de imagens do SO da VM.
Especifique uma versão de imagem. Para usar uma versão específica de uma imagem do SO da VM, use o seguinte formato:
projects/IMAGE_PROJECT_ID/global/images/IMAGE_NAME
Substitua:
IMAGE_PROJECT_ID
: o ID do projeto que contém a imagem. Por exemplo, para todas as imagens em lote, especifiquebatch-custom-image
.IMAGE_NAME
: o nome da imagem, que representa uma versão específica de uma imagem do SO da VM. Por exemplo, para conferir todas as versões de imagens do SO de VM do Batch, consulte uma lista de imagens do SO de VM.
Para criar o job, execute o seguinte comando
gcloud batch jobs submit
:gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE
Substitua:
JOB_NAME
: o nome do job.LOCATION
: o local do job.JSON_CONFIGURATION_FILE
: o caminho para o arquivo JSON com os detalhes de configuração do job.
API
Para criar um job usando a API Batch, use o
método jobs.create
e especifique os detalhes de configuração do job.
Para especificar a imagem do SO da VM para o job, inclua o campo image
.
Por exemplo, para criar um trabalho de script básico que use uma imagem específica do SO da VM,
faça a seguinte solicitação POST
:
POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs?job_id=JOB_NAME
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
"script": {
"text": "echo Hello world from task ${BATCH_TASK_INDEX}."
}
}
]
},
"taskCount": 3,
"parallelism": 1
}
],
"allocationPolicy": {
"instances": [
{
"policy": {
"bootDisk": {
"image": "VM_OS_IMAGE_URI"
}
}
}
]
},
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
Substitua:
PROJECT_ID
: o ID do projeto do seu projeto.LOCATION
: o local deste job.JOB_NAME
: o nome do job.VM_OS_IMAGE_URI
: um nome de recurso relativo da imagem do SO da VM. Use uma das seguintes opções:- Especifique um prefixo do SO em lote. Para usar a imagem mais recente de um SO do Batch específico, use o seguinte formato:
BATCH_OS_PREFIX
Substitua
BATCH_OS_PREFIX
por um dos prefixos de imagem do SO da VM em lote. Por exemplo,batch-debian
é o prefixo do SO Debian em lote.Especifique uma família de imagens. Para usar a imagem mais recente de uma família de imagens específica, use o seguinte formato:
projects/IMAGE_PROJECT_ID/global/images/family/IMAGE_FAMILY
Substitua:
IMAGE_PROJECT_ID
: o ID do projeto que contém a imagem. Por exemplo, para todas as imagens em lote, especifiquebatch-custom-image
.IMAGE_FAMILY
: a família de imagens, que inclui uma ou mais imagens específicas e representa o tipo e a versão principal do SO. Por exemplo, para ver todas as famílias de imagens do SO da VM do Batch, confira uma lista de imagens do SO da VM.
Especifique uma versão de imagem. Para usar uma versão específica de uma imagem do SO da VM, use o seguinte formato:
projects/IMAGE_PROJECT_ID/global/images/IMAGE_NAME
Substitua:
IMAGE_PROJECT_ID
: o ID do projeto que contém a imagem. Por exemplo, para todas as imagens em lote, especifiquebatch-custom-image
.IMAGE_NAME
: o nome da imagem, que representa uma versão específica de uma imagem do SO da VM. Por exemplo, para conferir todas as versões de imagens do SO de VM do Batch, consulte uma lista de imagens do SO de VM.
A seguir
- Se você tiver problemas para criar ou executar um job, consulte Solução de problemas.
- Saiba mais sobre imagens de SO de VM.
- Saiba mais sobre como criar um job.
- Saiba como ver jobs e tarefas.