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 di disco permanente, metadati, script di avvio e così via in un modello di istanza, quindi puoi 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 risiederà 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 tu abbia un modello di istanza pronto per l'uso. Se non hai un modello di istanza, segui le istruzioni per creare un nuovo modello di istanza.
Prima di iniziare
- Leggi la documentazione relativa al modello di istanza.
- Crea un modello di istanza.
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è il processo mediante il quale viene verificata l'identità per l'accesso ai servizi e alle API Google Cloud.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti in Compute Engine nel seguente modo.
Seleziona la scheda relativa a come prevedi di utilizzare gli esempi in questa pagina:
Console
Quando utilizzi la console Google Cloud per accedere ai servizi e alle API di Google Cloud, non devi configurare l'autenticazione.
gcloud
-
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
- Imposta una regione e una zona predefinite.
Go
Per utilizzare gli esempi Go in questa pagina da un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
Crea credenziali di autenticazione locali per il tuo Account Google:
gcloud auth application-default login
Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Per utilizzare gli esempi Java in questa pagina da un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
Crea credenziali di autenticazione locali per il tuo Account Google:
gcloud auth application-default login
Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per utilizzare gli esempi Node.js in questa pagina da un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
Crea credenziali di autenticazione locali per il tuo Account Google:
gcloud auth application-default login
Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per utilizzare gli esempi Python in questa pagina da un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
Crea credenziali di autenticazione locali per il tuo Account Google:
gcloud auth application-default login
Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, devi utilizzare le credenziali che fornisci a gcloud CLI.
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
-
Crea un'istanza VM da un modello di istanza
Puoi utilizzare un modello di istanza a livello di regione o globale per creare un'istanza VM. Per creare un'istanza esattamente come descritto nel modello di istanza, segui queste istruzioni.
Console
Nella console Google Cloud, vai alla pagina Crea un'istanza.
Fai clic su Nuova istanza VM da modello.
Seleziona il modello e fai clic su Continua.
Specifica un nome per la VM e apporta ulteriori personalizzazioni in base alle tue esigenze.
Fai clic su Crea.
Per ulteriori dettagli sulla configurazione, consulta Creare un'istanza VM da un'immagine.
gcloud
Per creare una VM da un modello di istanza a livello di regione o globale, 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. Per un modello di istanza a livello di regione, devi specificare l'URL completo o parziale del modello. Un esempio di URL completo èhttps://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/instanceTemplates/example-regional-instance-template
e un URL parziale èprojects/example-project/regions/us-central1/instanceTemplates/example-regional-instance-template
.
Ad esempio:
gcloud compute instances create example-instance \ --source-instance-template my-instance-template
Go
Java
Node.js
Python
REST
Per creare una VM da un modello di istanza a livello di regione o globale, crea una richiesta normale per creare un'istanza, ma includi il parametro di query sourceInstanceTemplate
seguito da un percorso qualificato verso 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, indica un valore name
per l'istanza VM:
{ "name": "example-instance" }
Ad esempio, lo snippet seguente 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" }
Crea un'istanza VM da un modello di istanza con override
Quando utilizzi un modello di istanza per avviare un'istanza VM, il comportamento predefinito è 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 sulla base di un modello di istanza, ma con alcune modifiche, puoi utilizzare il comportamento di override. Per utilizzare il comportamento di override, trasmetti gli attributi da sostituire per il modello di istanza esistente durante la creazione dell'istanza.
gcloud
Utilizzando l'interfaccia a riga di comando gcloud, effettua una richiesta per creare un'istanza con il flag --source-instance-template
e sostituisci qualsiasi proprietà che vuoi con il flag gcloud
appropriato. Per visualizzare un elenco dei flag applicabili, consulta il riferimento gcloud
.
Ad esempio, fornisci i seguenti flag per eseguire l'override del tipo di macchina, dei metadati, del sistema operativo, del disco di avvio di un Persistent Disk e di un disco secondario di un modello di istanza:
gcloud compute instances create example-instance \ --source-instance-template example-instance --machine-type e2-standard-2 \ --image-family debian-9 --image-project debian-cloud \ --metadata bread=butter --disk=boot=no,name=my-override-disk
Go
Java
Node.js
Python
REST
Nell'API, utilizza il parametro di query sourceInstanceTemplate
e fornisci tutti i campi che vuoi sostituire nel corpo della richiesta quando crei una richiesta normale per creare un'istanza.
Il comportamento di override nell'API segue le regole patch di unione JSON, descritte dal documento 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 esegui l'override di un campo ripetuto, tutti i valori ripetuti per la proprietà in questione verranno sostituiti con i valori corrispondenti forniti nella richiesta.
I campi ripetuti sono generalmente 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 specifica dell'oggetto corrispondente nella richiesta. Tieni presente che se un oggetto nidificato si trova all'interno di un campo ripetuto, questo 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 è di tipoobject
.
Ad esempio, supponiamo di avere un modello di istanza con due dischi non di avvio, ma di voler eseguire l'override di uno dei dischi. Devi fornire l'intera specifica di disks
nella richiesta, inclusi i dischi che vuoi conservare.
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
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" }
Passaggi successivi
- Leggi la documentazione sulle istanze VM prerilasciabili.
- Ulteriori informazioni sugli script di chiusura.
- Consulta i prezzi delle istanze prerilasciabili.
- Connettiti all'istanza.