Questo documento spiega come definire le risorse per un job batch specificando un modello di istanza VM di Compute Engine.
Facoltativamente, puoi definire le risorse per un job utilizzando uno dei seguenti metodi:
- Utilizza il campo
policy
per definire direttamente le risorse di un job, come illustrato in Creare un job di base. - Utilizza il campo
instanceTemplate
per definire le risorse di un job specificando un modello di istanza VM, come spiegato in questa sezione. Questo metodo è necessario per creare un job che utilizza immagini VM non predefinite.
Prima di iniziare
- Se non hai mai utilizzato Batch, consulta la Guida introduttiva all'utilizzo di Batch e abilita Batch completando i prerequisiti per progetti e utenti.
-
Per ottenere le autorizzazioni necessarie per creare un job, chiedi all'amministratore di concederti i ruoli IAM seguenti:
-
Editor job batch (
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 Compute (
roles/compute.viewer
) sul modello di istanza VM
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.
Potresti anche essere in grado di ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
-
Editor job batch (
Crea un job utilizzando un modello di istanza VM di Compute Engine
Questa sezione fornisce esempi su 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, l'API Batch, 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 corrente denominata
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, scopri 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, usa il metodo jobs.create
e specifica un modello di istanza VM nel campo allocationPolicy
.
Ad esempio, per creare un 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 progetto.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, scopri 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.
Go
Go
Per maggiori informazioni, consulta la documentazione di riferimento dell'API Batch Go.
Per eseguire l'autenticazione in Batch, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Java
Per maggiori informazioni, consulta la documentazione di riferimento dell'API Batch Java.
Per eseguire l'autenticazione in Batch, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Node.js
Per maggiori informazioni, consulta la documentazione di riferimento dell'API Batch Node.js.
Per eseguire l'autenticazione in Batch, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Python
Per maggiori informazioni, consulta la documentazione di riferimento dell'API Batch Python.
Per eseguire l'autenticazione in Batch, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
C++
C++
Per maggiori informazioni, consulta la documentazione di riferimento dell'API Batch C++.
Per eseguire l'autenticazione in Batch, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Passaggi successivi
- In caso di problemi durante la creazione o l'esecuzione di un job, consulta Risoluzione dei problemi.
- Visualizza job e attività.
- Scopri di più sulle opzioni per la creazione di job.