Questo documento spiega come definire le risorse VM per un job Batch specificando un modello di istanza VM di Compute Engine quando crei il job.
I tipi di risorse VM su cui viene eseguito un job vengono definiti automaticamente da Batch, a meno che non li definisci utilizzando uno dei seguenti metodi:
- Definisci le risorse VM di un job direttamente utilizzando il campo
instances[].policy
. Questo metodo è illustrato nella maggior parte della documentazione di Batch. Definisci le risorse VM di un job tramite un modello utilizzando il campo
instances[].instanceTemplate
. Questo è il metodo spiegato in questo documento.L'utilizzo di un modello è necessario per specificare le opzioni della VM per cui Batch non fornisce campi del job. L'utilizzo di un modello può essere utile anche quando vuoi specificare le stesse risorse VM per più job.
Prima di iniziare
- Se non hai mai utilizzato Batch, consulta la sezione Guida introduttiva a Batch e attiva Batch completando i prerequisiti per progetti e utenti.
- Crea un modello di istanza o identifica un modello di istanza esistente.
-
Per ottenere le autorizzazioni necessarie per creare un job, chiedi all'amministratore di concederti i seguenti ruoli IAM:
-
Batch Job Editor (
roles/batch.jobsEditor
) sul progetto -
Utente service account (
roles/iam.serviceAccountUser
) sul service account del job, che per impostazione predefinita è il service account Compute Engine predefinito -
Crea un job da un modello di istanza VM di Compute Engine:
Compute Viewer (
roles/compute.viewer
) sul modello di istanza VM
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
-
Batch Job Editor (
Crea un job utilizzando un modello di istanza VM di Compute Engine
Questa sezione fornisce esempi di come creare un job di script di base da un modello di istanza VM esistente. Puoi creare un job da un modello di istanza VM utilizzando gcloud CLI, Batch API, Go, Java, Node.js, Python o C++.
gcloud
Per creare un job da un modello di istanza VM utilizzando
gcloud CLI, utilizza il comando gcloud batch jobs submit
e specifica il modello di istanza VM nel file di configurazione JSON del job.
Ad esempio, per creare un job di script di base da un modello di istanza VM:
Crea un file JSON nella directory attuale denominato
hello-world-instance-template.json
con il seguente contenuto:{ "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" } }
Sostituisci quanto segue:
INSTALL_GPU_DRIVERS
: (Facoltativo). Se impostato sutrue
, Batch recupera i driver necessari per il tipo di GPU specificato nel modello di istanza VM di Compute Engine e li installa per tuo conto. Per ulteriori informazioni, consulta la pagina su come creare un job che utilizza una GPU.INSTANCE_TEMPLATE_NAME
: il nome di un modello di istanza VM di Compute Engine esistente. Scopri come creare ed elencare i modelli di istanza.
Esegui questo comando:
gcloud batch jobs submit example-template-job \ --location us-central1 \ --config hello-world-instance-template.json
API
Per creare un job di base utilizzando l'API Batch, utilizza il
metodo jobs.create
e specifica un modello di istanza VM nel campo allocationPolicy
.
Ad esempio, per creare job di script di base da un modello di istanza VM, utilizza la seguente richiesta:
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"
}
}
Sostituisci quanto segue:
PROJECT_ID
: l'ID progetto del tuo progetto.INSTALL_GPU_DRIVERS
: (Facoltativo). Se impostato sutrue
, Batch recupera i driver richiesti per il tipo di GPU specificato nel modello di istanza VM di Compute Engine e li installa per tuo conto. Per ulteriori informazioni, consulta la pagina su come creare un job che utilizza una GPU.INSTANCE_TEMPLATE_NAME
: il nome di un modello di istanza VM di Compute Engine esistente. Scopri come creare ed elencare i modelli di istanza.
Vai
Go
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Batch per Go.
Per eseguire l'autenticazione in Batch, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Java
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Batch per Java.
Per eseguire l'autenticazione in Batch, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Node.js
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Batch per Node.js.
Per eseguire l'autenticazione in Batch, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Python
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Batch per Python.
Per eseguire l'autenticazione in Batch, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
C++
C++
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Batch per C++.
Per eseguire l'autenticazione in Batch, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Passaggi successivi
- Se hai problemi a creare o eseguire un job, consulta la sezione Risoluzione dei problemi.
- Visualizzare lavori e attività.
- Scopri di più sulle opzioni di creazione dei job.