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 utilizzi immagini VM non predefinite.
Prima di iniziare
- Se non hai ancora utilizzato Batch, consulta la Guida introduttiva all'utilizzo di Batch e abilitalo compilando i prerequisiti per progetti e utenti.
-
Per ottenere le autorizzazioni necessarie per creare un job, chiedi all'amministratore di concederti i seguenti ruoli IAM:
-
Editor job batch (
roles/batch.jobsEditor
) sul progetto -
Utente account di servizio (
roles/iam.serviceAccountUser
) sull'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 maggiori informazioni sulla concessione dei ruoli, vedi Gestire l'accesso.
Potresti anche ottenere le autorizzazioni richieste tramite 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 l'interfaccia a riga di comando gcloud, l'API Batch, Go, Java, Node.js o Python.
gcloud
Per creare un job da un modello di istanza VM utilizzando l'interfaccia a riga di comando gcloud, 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 conto tuo. 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 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 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 conto tuo. 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 modelli di istanza.
Go
Go
Per scoprire di più, consulta la documentazione di riferimento per le API Go in batch.
Per eseguire l'autenticazione in batch, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Java
Per scoprire di più, consulta la documentazione di riferimento per le API Java in batch.
Per eseguire l'autenticazione in batch, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Node.js
Per scoprire di più, consulta la documentazione di riferimento per le API Node.js in batch.
Per eseguire l'autenticazione in batch, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Python
Per scoprire di più, consulta la documentazione di riferimento per le API Python in batch.
Per eseguire l'autenticazione in batch, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Passaggi successivi
- Se hai problemi durante la creazione o l'esecuzione di un job, vedi Risoluzione dei problemi.
- Visualizza job e attività.
- Scopri di più sulle opzioni per la creazione di offerte di lavoro.