Questo documento spiega come definire le risorse VM per un job Batch specificando un modello di istanza VM Compute Engine durante la creazione del job.
I tipi di risorse VM su cui viene eseguito un job vengono definiti automaticamente da Batch, a meno che non li definisca utilizzando uno dei seguenti metodi:
- Definisci le risorse VM di un job direttamente utilizzando il campo
instances[].policy
. Questo metodo è descritto 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 VM per le quali Batch non fornisce campi di job. L'utilizzo di un modello può essere pratico anche quando vuoi specificare le stesse risorse VM per più job.
Prima di iniziare
- Se non hai mai utilizzato Batch, consulta la guida introduttiva all'utilizzo di Batch e attivalo 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
) nel progetto -
Utente account di servizio (
roles/iam.serviceAccountUser
) nell'account di servizio del job, che per impostazione predefinita è l'account di servizio Compute Engine predefinito -
Crea un job da un modello di istanza VM di Compute Engine:
Visualizzatore di Compute (
roles/compute.viewer
) nel modello di istanza VM
Per saperne di più sulla concessione dei ruoli, consulta Gestire 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 (
Creare un job utilizzando un modello di istanza VM 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 l'interfaccia a riga di comando gcloud CLI'API Batch, Go, Java, Node.js, Python o C++.
gcloud
Per creare un job da un modello di istanza VM utilizzando l'interfaccia alla 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 i seguenti contenuti:{ "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 richiesti per il tipo di GPU specificato nel modello di istanza VM 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 Compute Engine esistente. Scopri come create e 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
: il 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 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 Compute Engine esistente. Scopri come create e elencare i modelli di istanza.
Vai
Go
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Batch Go.
Per autenticarti a Batch, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Java
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Batch Java.
Per autenticarti a Batch, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Node.js
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Batch Node.js.
Per autenticarti a Batch, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Python
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Batch Python.
Per autenticarti a Batch, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
C++
C++
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Batch C++.
Per autenticarti a Batch, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare 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.
- Visualizza job e attività.
- Scopri di più sulle opzioni di creazione dei job.