Esta página descreve como especificar a imagem do sistema operativo (SO) para as instâncias de máquinas virtuais (VM) em que um trabalho é executado. Se também quiser personalizar outras propriedades dos discos de arranque da tarefa, consulte o artigo Crie e execute uma tarefa que use discos de arranque personalizados em alternativa.
Para saber mais sobre as imagens do SO de VMs e que imagens do SO de VMs pode usar, consulte a vista geral do ambiente do SO de VMs.
Antes de começar
- Se nunca usou o Batch, reveja o artigo Comece a usar o Batch e ative o Batch concluindo os pré-requisitos para projetos e utilizadores.
-
Para receber as autorizações de que precisa para criar uma tarefa, peça ao seu administrador para lhe conceder as seguintes funções de IAM:
-
Editor de tarefas em lote (
roles/batch.jobsEditor
) no projeto -
Utilizador da conta de serviço (
roles/iam.serviceAccountUser
) na conta de serviço da tarefa, que, por predefinição, é a conta de serviço predefinida do Compute Engine
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
-
Editor de tarefas em lote (
Crie e execute uma tarefa que use uma imagem do SO de VM específica
Especifique a imagem do SO da VM quando estiver a criar uma tarefa selecionando um dos seguintes métodos:
- Use um modelo de instância do Compute Engine que especifique uma imagem do SO da VM. Se quiser usar um modelo de instância de VM ao criar esta tarefa, tem de especificar a imagem do SO da VM no modelo de instância de VM. Para obter instruções, consulte o artigo Defina recursos de tarefas com um modelo de instância de VM.
Use o campo de imagem do SO da VM. Conforme explicado nas instruções seguintes, pode especificar a imagem do SO da VM no campo
image
através da CLI gcloud ou da API Batch.
gcloud
Crie um ficheiro JSON que especifique os detalhes de configuração da sua tarefa. Para especificar a imagem do SO da VM para a tarefa, inclua o campo
image
.Por exemplo, para criar uma tarefa de script básica que use uma imagem de SO de VM específica, crie um ficheiro 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 do 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 de lote específico, use o seguinte formato:
BATCH_OS_PREFIX
Substitua
BATCH_OS_PREFIX
por um dos prefixos de imagem do SO de 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 o seguinte:
IMAGE_PROJECT_ID
: o ID do projeto 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 de VMs do Batch, veja uma lista de imagens do SO de VMs.
Especifique uma versão da imagem. Para usar uma versão específica de uma imagem do SO de VM, use o seguinte formato:
projects/IMAGE_PROJECT_ID/global/images/IMAGE_NAME
Substitua o seguinte:
IMAGE_PROJECT_ID
: o ID do projeto 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 de uma VM. Por exemplo, para ver todas as versões de imagens do SO de VMs do Batch, veja uma lista de imagens do SO de VMs.
Para criar a tarefa, execute o seguinte comando
gcloud batch jobs submit
:gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE
Substitua o seguinte:
JOB_NAME
: o nome desta tarefa.LOCATION
: a localização para este trabalho.JSON_CONFIGURATION_FILE
: o caminho para o ficheiro JSON com os detalhes de configuração da tarefa.
API
Para criar uma tarefa através da API Batch, use o método
jobs.create
e especifique os detalhes de configuração da tarefa.
Para especificar a imagem do SO da VM para a tarefa, inclua o campo image
.
Por exemplo, para criar uma tarefa de script básica que use uma imagem de SO de VM específica,
faça o seguinte pedido 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 o seguinte:
PROJECT_ID
: o ID do projeto do seu projeto.LOCATION
: a localização para este trabalho.JOB_NAME
: o nome desta tarefa.VM_OS_IMAGE_URI
: um nome do 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 de lote específico, use o seguinte formato:
BATCH_OS_PREFIX
Substitua
BATCH_OS_PREFIX
por um dos prefixos de imagem do SO de 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 o seguinte:
IMAGE_PROJECT_ID
: o ID do projeto 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 de VMs do Batch, veja uma lista de imagens do SO de VMs.
Especifique uma versão da imagem. Para usar uma versão específica de uma imagem do SO de VM, use o seguinte formato:
projects/IMAGE_PROJECT_ID/global/images/IMAGE_NAME
Substitua o seguinte:
IMAGE_PROJECT_ID
: o ID do projeto 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 de uma VM. Por exemplo, para ver todas as versões de imagens do SO de VMs do Batch, veja uma lista de imagens do SO de VMs.
O que se segue?
- Se tiver problemas ao criar ou executar uma tarefa, consulte a secção Resolução de problemas.
- Saiba mais sobre as imagens do SO de VM.
- Saiba mais sobre como criar uma tarefa.
- Saiba como ver serviços e tarefas.