Questa pagina descrive come specificare l'immagine del sistema operativo 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 Crea ed esegui un job che utilizza dischi di avvio personalizzati invece.
Per scoprire di più sulle immagini sistema operativo VM e su quali puoi utilizzare, consulta la panoramica dell'ambiente del sistema operativo VM.
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.
-
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
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 ed esegui un job che utilizza un'immagine 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 istruzioni, vedi Definisci le risorse del job utilizzando un modello di istanza VM.
Utilizza il campo dell'immagine del sistema operativo della VM. Come spiegato nelle istruzioni riportate di seguito, puoi specificare l'immagine del sistema operativo della VM nel campo
image
utilizzando gcloud CLI 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 script di base che utilizzi un'immagine 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 sistema operativo VM. Utilizza una delle seguenti opzioni:Specifica un prefisso del sistema operativo batch. Per utilizzare l'ultima immagine di un sistema operativo Batch specifico, utilizza il seguente formato:
BATCH_OS_PREFIX
Sostituisci
BATCH_OS_PREFIX
con uno dei prefissi dell'immagine sistema operativo VM Batch, ad esempiobatch-debian
è il prefisso per il sistema operativo Batch Debian.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
: l'ID progetto del progetto che contiene l'immagine. Ad esempio, per tutte le immagini 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 sistema operativo VM da Batch, visualizza un elenco di immagini sistema operativo VM.
Specifica una versione dell'immagine. Per utilizzare una versione specifica di un'immagine del sistema operativo VM, utilizza il seguente formato:
projects/IMAGE_PROJECT_ID/global/images/IMAGE_NAME
Sostituisci quanto segue:
IMAGE_PROJECT_ID
: l'ID progetto del progetto che contiene l'immagine. Ad esempio, per tutte le immagini Batch, specificabatch-custom-image
.IMAGE_NAME
: il nome dell'immagine, che rappresenta una versione specifica di un'immagine del sistema operativo VM. Ad esempio, per visualizzare tutte le versioni dell'immagine sistema operativo VM da Batch, visualizza un elenco di immagini sistema operativo VM.
Per creare il job, esegui questo
gcloud batch jobs submit
comando:gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE
Sostituisci quanto segue:
JOB_NAME
: il nome di questo job.LOCATION
: la posizione 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 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
: l'ID progetto del tuo progetto.LOCATION
: la sede per questo lavoro.JOB_NAME
: il nome di questo job.VM_OS_IMAGE_URI
: un nome risorsa relativo dell'immagine sistema operativo della VM. Utilizza una delle seguenti opzioni:- Specifica un prefisso del sistema operativo batch. Per utilizzare l'ultima immagine di un sistema operativo Batch specifico, utilizza il seguente formato:
BATCH_OS_PREFIX
Sostituisci
BATCH_OS_PREFIX
con uno dei prefissi dell'immagine sistema operativo VM Batch, ad esempiobatch-debian
è il prefisso per il sistema operativo Batch Debian.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
: l'ID progetto del progetto che contiene l'immagine. Ad esempio, per tutte le immagini 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 sistema operativo VM da Batch, visualizza un elenco di immagini sistema operativo VM.
Specifica una versione dell'immagine. Per utilizzare una versione specifica di un'immagine del sistema operativo VM, utilizza il seguente formato:
projects/IMAGE_PROJECT_ID/global/images/IMAGE_NAME
Sostituisci quanto segue:
IMAGE_PROJECT_ID
: l'ID progetto del progetto che contiene l'immagine. Ad esempio, per tutte le immagini Batch, specificabatch-custom-image
.IMAGE_NAME
: il nome dell'immagine, che rappresenta una versione specifica di un'immagine del sistema operativo VM. Ad esempio, per visualizzare tutte le versioni dell'immagine sistema operativo VM da Batch, visualizza un elenco di immagini 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 sistema operativo VM.
- Scopri di più sulla creazione di un job.
- Scopri come visualizzare lavori e attività.