Questa pagina spiega come utilizzare un modello di istanza per creare un'istanza VM. Un modello di istanza è una risorsa API che definisce le proprietà delle istanze VM. Puoi definire proprietà come tipo di macchina, immagine del sistema operativo, configurazioni dei dischi permanenti, metadati, script di avvio e così via in un modello di istanza, quindi utilizzare il modello di istanza per creare singole istanze VM o gruppi di istanze gestite.
Quando crei un'istanza VM da un modello di istanza, il comportamento predefinito prevede la creazione di un'istanza VM identica alle proprietà specificate nel modello, ad eccezione del nome dell'istanza VM e della zona in cui si troverà l'istanza. In alternativa, puoi anche eseguire l'override di determinati campi durante la creazione dell'istanza se vuoi modificare determinate proprietà del modello di istanza per usi specifici.
Questo documento presuppone che sia disponibile un modello di istanza da utilizzare. Se non hai un modello di istanza, segui le istruzioni per creare un nuovo modello di istanza.
Prima di iniziare
- Se vuoi utilizzare gli esempi a riga di comando in questa guida, segui questi passaggi:
- Installa o aggiorna l'ultima versione dell'interfaccia a riga di comando di Google Cloud.
- Imposta un'area geografica e una zona predefinite.
- Se vuoi utilizzare gli esempi di API in questa guida, configura l'accesso API.
- Leggi la documentazione relativa al modello di istanza.
- Crea un modello di istanza.
Crea un'istanza VM da un modello di istanza
Per creare un'istanza esattamente come descritto nel modello di istanza, segui queste istruzioni.
Console
In Google Cloud Console, vai alla pagina Crea un'istanza.
Fai clic su Nuova istanza VM da modello.
Seleziona il tuo modello e fai clic su Continua.
Specifica un nome per la VM e apporta ulteriori personalizzazioni in base alle necessità.
Fai clic su Crea.
Per ulteriori dettagli sulla configurazione, consulta Creare un'istanza VM da un'immagine.
gcloud
Per creare una nuova VM da un modello di istanza, utilizza lo stesso comando gcloud compute instances create
che useresti per creare un'istanza normale, ma aggiungi il flag --source-instance-template
:
gcloud compute instances create VM_NAME --source-instance-template INSTANCE_TEMPLATE_NAME
Sostituisci quanto segue:
VM_NAME
: il nome dell'istanza.INSTANCE_TEMPLATE_NAME
: il nome del modello di istanza da utilizzare.
Ad esempio:
gcloud compute instances create example-instance --source-instance-template my-instance-template
API
Nell'API, crea una richiesta normale per
creare un'istanza,
ma includere il parametro di ricerca sourceInstanceTemplate
seguito da un percorso qualificato per un modello di istanza.
POST https://compute.googleapis.com/compute/v1/projects/ PROJECT_ID/zones/ZONE/ instances?sourceInstanceTemplate=INSTANCE_TEMPLATE_NAME
Nel corpo della richiesta, fornisci un name
per l'istanza VM:
{ "name": "example-instance" }
Ad esempio, il seguente snippet include un percorso completo del
modello: https://compute.googleapis.com/compute/v1/projects/myproject/global/instanceTemplates/example-instance-template
.
POST https://compute.googleapis.com/ compute/v1/projects/myproject/zones/us-central1-a/instances?sourceInstanceTemplate= https://compute.googleapis.com/compute/v1/projects/myproject/global/ instanceTemplates/example-instance-template
{ "name": "example-instance" }
Go
Java
Node.js
Python
Crea un'istanza VM da un modello di istanza con sostituzioni
Quando utilizzi un modello di istanza per avviare un'istanza VM, il comportamento predefinito consiste nel creare un'istanza VM esattamente come descritto nel modello di istanza, ad eccezione del nome e della zona dell'istanza.
Se vuoi creare un'istanza principalmente in base a un modello di istanza, ma con alcune modifiche, puoi utilizzare il comportamento di override. Per utilizzare il comportamento di override, trasmetti attributi per eseguire l'override del modello di istanza esistente quando crei l'istanza.
gcloud
Utilizzando l'interfaccia a riga di comando gcloud, fai una richiesta per creare un'istanza con il flag --source-instance-template
e
sostituisci l'eventuale proprietà con il flag gcloud
appropriato. Per visualizzare un elenco dei flag applicabili,
consulta il riferimento gcloud
.
Ad esempio, per eseguire l'override del tipo di macchina, dei metadati, del sistema operativo, di un disco permanente di avvio e di un disco secondario di un modello di istanza, fornisci i seguenti flag:
gcloud compute instances create example-instance --source-instance-template example-instance --machine-type e2-standard-2 --image-family debian-8 \ --image-project debian-cloud --metadata bread=butter \ --disk=boot=no,name=my-override-disk
API
Nell'API, utilizza il parametro di ricerca sourceInstanceTemplate
e fornisci tutti i campi che vuoi sostituire nel corpo della richiesta quando crei una normale richiesta per creare un'istanza.
Il comportamento di override nell'API segue le regole delle patch di unione JSON, descritte da RFC 7396.
In particolare:
- Se esegui l'override di un campo di base, il campo di base corrispondente
nel modello di istanza verrà sostituito con il valore del campo di base
nella richiesta. I campi di base includono
machineType
,sourceImage
,name
e così via. - Se sostituisci un campo ripetuto, tutti i valori ripetuti per quella proprietà verranno sostituiti con i valori corrispondenti forniti nella richiesta.
In genere, i campi ripetuti sono proprietà di tipo
list
. Ad esempio,disks
enetworkInterfaces
sono campi ripetuti. - Se esegui l'override di
nested object
, l'oggetto nel modello di istanza verrà unito alla corrispondente specifica dell'oggetto nella richiesta. Ricorda che, se un oggetto nidificato si trova all'interno di un campo ripetuto, il campo viene trattato in base alle regole per i campi ripetuti. Le etichette sono un'eccezione a questa regola e vengono trattate come un campo ripetuto anche se sono di tipoobject
.
Ad esempio, supponiamo che tu abbia un modello di istanza con due dischi non di avvio e che tu voglia eseguire l'override di uno dei dischi. Devi fornire l'intera specifica
disks
nella richiesta, inclusi i dischi che vuoi conservare.
L'URL per questa richiesta:
POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances? sourceInstanceTemplate=https://compute.googleapis.com/compute/v1/projects/myproject/global/instanceTemplates/example-instance-template
Il corpo della richiesta:
{ "disks": [ { # Since you are overriding the repeated disk property, you must # specify a boot disk in the request, even if it is already # specified in the instance template "autoDelete": true, "boot": true, "initializeParams": { "sourceImage": "projects/debian-cloud/global/images/family/debian-8" }, "mode": "READ_WRITE", "type": "PERSISTENT" }, { # New disk you want to use "autoDelete": false, "boot": false, "mode": "READ_WRITE", "source": "zones/us-central1-f/disks/my-override-disk", "type": "PERSISTENT" }, { # Assume this disk is already specified in instance template, but # you must specify it again since you are overriding the disks # property "autoDelete": false, "boot": false, "mode": "READ_WRITE", "source": "zones/us-central1-f/disks/my-other-disk-to-keep", "type": "PERSISTENT" } ], "machineType": "zones/us-central1-f/machineTypes/e2-standard-2", "name": "example-instance" }
Go
Java
Node.js
Python
Passaggi successivi
- Leggi la documentazione sulle istanze VM prerilasciabili.
- Scopri di più sugli script di arresto.
- Fai riferimento al prezzo delle istanze prerilasciabili.
- Connettiti all'istanza.