Questa pagina descrive come specificare l'immagine del sistema operativo (OS) per le istanze di macchine virtuali (VM) su cui viene eseguito un job. Se vuoi personalizzare anche altre proprietà dei dischi di avvio del job, consulta Creare ed eseguire un job che utilizza dischi di avvio personalizzati.
Per scoprire di più sulle immagini del sistema operativo VM e su quali puoi utilizzare, consulta Panoramica dell'ambiente del sistema operativo VM.
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.
-
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 dell'account di servizio (
roles/iam.serviceAccountUser
) nell'account di servizio del job, che per impostazione predefinita è l'account di servizio Compute Engine predefinito
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 (
Crea ed esegui un job che utilizza un'immagine del sistema operativo VM specifica
Specifica l'immagine del sistema operativo della VM quando crei un job selezionando uno dei seguenti metodi:
- Utilizza un modello di istanza Compute Engine che specifica un'immagine del sistema operativo VM. Se vuoi utilizzare un modello di istanza VM durante la creazione di questo job, devi specificare l'immagine del sistema operativo VM nel modello di istanza VM. Per le istruzioni, consulta Definire le risorse dei job utilizzando un modello di istanza VM.
Utilizza il campo dell'immagine del sistema operativo della VM. Come spiegato nelle istruzioni seguenti, puoi specificare l'immagine del sistema operativo della VM nel campo
image
utilizzando la CLI gcloud o l'API Batch.
gcloud
Crea un file JSON che specifichi i dettagli di configurazione del job. Per specificare l'immagine del sistema operativo della VM per il job, includi il campo
image
.Ad esempio, per creare un job di script di base che utilizza un'immagine del sistema operativo VM specifica, crea un file JSON con i seguenti contenuti:
{ "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" } }
Sostituisci
VM_OS_IMAGE_URI
con un nome risorsa relativo dell'immagine del sistema operativo della VM. Utilizza una delle seguenti opzioni:Specifica un prefisso del sistema operativo batch. Per utilizzare l'immagine più recente di un sistema operativo batch specifico, utilizza il seguente formato:
BATCH_OS_PREFIX
Sostituisci
BATCH_OS_PREFIX
con uno dei prefissi delle immagini del sistema operativo VM batch. Ad esempio,batch-debian
è il prefisso per il sistema operativo Debian batch.Specifica una famiglia di immagini. Per utilizzare l'immagine più recente di una famiglia di immagini specifica, utilizza il seguente formato:
projects/IMAGE_PROJECT_ID/global/images/family/IMAGE_FAMILY
Sostituisci quanto segue:
IMAGE_PROJECT_ID
: il ID progetto del progetto che contiene l'immagine. Ad esempio, per tutte le immagini di batch, specificabatch-custom-image
.IMAGE_FAMILY
: la famiglia di immagini, che include una o più immagini specifiche e rappresenta il tipo e la versione principale del sistema operativo. Ad esempio, per visualizzare tutte le famiglie di immagini del sistema operativo VM da Batch, visualizza un elenco di immagini del sistema operativo VM.
Specifica una versione dell'immagine. Per utilizzare una versione specifica dell'immagine del sistema operativo di una VM, utilizza il seguente formato:
projects/IMAGE_PROJECT_ID/global/images/IMAGE_NAME
Sostituisci quanto segue:
IMAGE_PROJECT_ID
: il ID progetto del progetto che contiene l'immagine. Ad esempio, per tutte le immagini di batch, specificabatch-custom-image
.IMAGE_NAME
: il nome dell'immagine, che rappresenta una versione specifica di un'immagine del sistema operativo della VM. Ad esempio, per visualizzare tutte le versioni delle immagini del sistema operativo VM da Batch, visualizza un elenco di immagini del sistema operativo VM.
Per creare il job, esegui il seguente comando
gcloud batch jobs submit
:gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE
Sostituisci quanto segue:
JOB_NAME
: il nome di questo job.LOCATION
: la località per questo lavoro.JSON_CONFIGURATION_FILE
: il percorso del file JSON con i dettagli di configurazione del job.
API
Per creare un job utilizzando l'API Batch, utilizza il
metodo jobs.create
e specifica i dettagli di configurazione del job.
Per specificare l'immagine del sistema operativo della VM per il job, includi il
campo image
.
Ad esempio, per creare un job di script di base che utilizza un'immagine del sistema operativo VM specifica,
invia la seguente richiesta 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"
}
}
Sostituisci quanto segue:
PROJECT_ID
: il ID progetto del tuo progetto.LOCATION
: la località per questo lavoro.JOB_NAME
: il nome di questo job.VM_OS_IMAGE_URI
: un nome risorsa relativo dell'immagine del sistema operativo della VM. Utilizza una delle seguenti opzioni:- Specifica un prefisso del sistema operativo batch. Per utilizzare l'immagine più recente di un sistema operativo batch specifico, utilizza il seguente formato:
BATCH_OS_PREFIX
Sostituisci
BATCH_OS_PREFIX
con uno dei prefissi delle immagini del sistema operativo VM batch. Ad esempio,batch-debian
è il prefisso per il sistema operativo Debian batch.Specifica una famiglia di immagini. Per utilizzare l'immagine più recente di una famiglia di immagini specifica, utilizza il seguente formato:
projects/IMAGE_PROJECT_ID/global/images/family/IMAGE_FAMILY
Sostituisci quanto segue:
IMAGE_PROJECT_ID
: il ID progetto del progetto che contiene l'immagine. Ad esempio, per tutte le immagini di batch, specificabatch-custom-image
.IMAGE_FAMILY
: la famiglia di immagini, che include una o più immagini specifiche e rappresenta il tipo e la versione principale del sistema operativo. Ad esempio, per visualizzare tutte le famiglie di immagini del sistema operativo VM da Batch, visualizza un elenco di immagini del sistema operativo VM.
Specifica una versione dell'immagine. Per utilizzare una versione specifica dell'immagine del sistema operativo di una VM, utilizza il seguente formato:
projects/IMAGE_PROJECT_ID/global/images/IMAGE_NAME
Sostituisci quanto segue:
IMAGE_PROJECT_ID
: il ID progetto del progetto che contiene l'immagine. Ad esempio, per tutte le immagini di batch, specificabatch-custom-image
.IMAGE_NAME
: il nome dell'immagine, che rappresenta una versione specifica di un'immagine del sistema operativo della VM. Ad esempio, per visualizzare tutte le versioni delle immagini del sistema operativo VM da Batch, visualizza un elenco di immagini del sistema operativo VM.
Passaggi successivi
- Se hai problemi a creare o eseguire un job, consulta la sezione Risoluzione dei problemi.
- Scopri di più sulle immagini del sistema operativo VM.
- Scopri di più sulla creazione di un job.
- Scopri come visualizzare job e attività.