Questa pagina spiega come utilizzare un template di istanza per creare un'istanza VM. Un template di istanza è una risorsa API che definisce le proprietà delle istanze VM. In un template di istanza puoi definire proprietà come il tipo di macchina, l'immagine sistema operativo, le configurazioni dei dischi permanenti, i metadati, gli script di avvio e così via. Poi puoi utilizzare il template di istanza per creare singole istanze VM o gruppi di istanze gestite.
Quando crei un'istanza VM da un template di istanza, il comportamento predefinito prevede la creazione di un'istanza VM identica alle proprietà specificate nel template, ad eccezione del nome dell'istanza VM e della zona in cui questa verrà eseguita. In alternativa, se vuoi modificare determinate proprietà del template di istanza per utilizzi specifici, in via facoltativa puoi anche eseguire l'override di certi campi durante la creazione dell'istanza.
Questo documento presuppone che tu disponga di un template di istanza pronto per l'uso. Se non hai un template di istanza, segui le istruzioni per crearne uno nuovo.
Prima di iniziare
- Leggi la documentazione sul template di istanza.
- Crea un template di istanza.
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione verifica la tua identità per l'accesso ad API e servizi Google Cloud . Per eseguire
codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su
Compute Engine selezionando una delle seguenti opzioni:
Seleziona la scheda relativa a come intendi utilizzare i campioni in questa pagina:
Console
Quando utilizzi la console Google Cloud per accedere ai servizi Google Cloud e alle API, non devi configurare l'autenticazione.
gcloud
-
Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il comando seguente:
gcloud initSe utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
- Imposta una regione e una zona predefinite.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Se utilizzi una shell locale, crea credenziali di autenticazione locali per il tuo account utente:
gcloud auth application-default login
Non è necessario eseguire questa operazione se utilizzi Cloud Shell.
Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver acceduto a gcloud CLI con la tua identità federata.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Se utilizzi una shell locale, crea credenziali di autenticazione locali per il tuo account utente:
gcloud auth application-default login
Non è necessario eseguire questa operazione se utilizzi Cloud Shell.
Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver acceduto a gcloud CLI con la tua identità federata.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Se utilizzi una shell locale, crea credenziali di autenticazione locali per il tuo account utente:
gcloud auth application-default login
Non è necessario eseguire questa operazione se utilizzi Cloud Shell.
Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver acceduto a gcloud CLI con la tua identità federata.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Se utilizzi una shell locale, crea credenziali di autenticazione locali per il tuo account utente:
gcloud auth application-default login
Non è necessario eseguire questa operazione se utilizzi Cloud Shell.
Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver acceduto a gcloud CLI con la tua identità federata.
Go
Per utilizzare gli esempi di Go in questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Per utilizzare gli esempi Java in questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per utilizzare gli esempi di Node.js in questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per utilizzare gli esempi di Python in questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
Per saperne di più, 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, utilizzi le credenziali che fornisci a gcloud CLI.
Installa Google Cloud CLI.
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
Per saperne di più, consulta Autenticati per usare REST nella documentazione sull'autenticazione di Google Cloud .
Crea un'istanza VM da un template di istanza
Puoi utilizzare un template di istanza regionale o globale per creare un'istanza VM. Per creare un'istanza esattamente come descritto nel template di istanza, segui queste istruzioni.
Console
Nella console Google Cloud , vai alla pagina Crea un'istanza.
Nel menu Crea VM da…, seleziona Template di istanza.
Nella finestra Crea VM da template visualizzata, procedi nel seguente modo:
Seleziona un template.
Per creare e avviare la VM, fai clic su Crea.
gcloud
Per creare una VM da un template di istanza regionale o globale, utilizza lo stesso
comando gcloud compute instances create
che utilizzeresti per creare un'istanza normale, ma aggiungi il flag --source-instance-template:
gcloud compute instances create VM_NAME \
--source-instance-template INSTANCE_TEMPLATE_URL
Sostituisci quanto segue:
VM_NAME: il nome dell'istanza.INSTANCE_TEMPLATE_URL: l'URL del modello di istanza che vuoi utilizzare per creare istanze nel MIG. L'URL può contenere l'ID o il nome del modello di istanza. Specifica uno dei seguenti valori:- Per un template di istanza regionale:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - Per un template di istanza globale:
INSTANCE_TEMPLATE_ID
- Per un template di istanza regionale:
Ad esempio:
gcloud compute instances create example-instance \
--source-instance-template 1234567890
Go
Java
Node.js
Python
REST
Per creare una VM da un template di istanza regionale o globale, crea una
richiesta normale di creare un'istanza,
ma includi il parametro di query sourceInstanceTemplate
seguito da un percorso completo un template di istanza.
POST https://compute.googleapis.com/compute/v1/projects/ PROJECT_ID/zones/ZONE/ instances?sourceInstanceTemplate=INSTANCE_TEMPLATE_URL
Nel corpo della richiesta, fornisci un name per l'istanza VM:
{ "name": "example-instance" }
Ad esempio, il seguente snippet include un percorso completo al
template: https://compute.googleapis.com/compute/v1/projects/myproject/global/instanceTemplates/1234567890.
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/1234567890
{ "name": "example-instance" }
Crea un'istanza VM da un template di istanza con override
Quando utilizzi un template di istanza per avviare un'istanza VM, il comportamento predefinito prevede la creazione di un'istanza VM esattamente come descritto nel template, ad eccezione del nome e della zona dell'istanza.
Se vuoi creare un'istanza principalmente in base a un template di istanza, ma con alcune modifiche, puoi utilizzare il comportamento di override. Per utilizzarlo, devi passare gli attributi di cui vuoi eseguire l'override per il template di istanza esistente durante la creazione dell'istanza.
Console
Nella console Google Cloud , vai alla pagina Crea un'istanza.
Nel menu Crea VM da…, seleziona Template di istanza.
Nella finestra Crea VM da template visualizzata, seleziona un template e poi fai clic su Personalizza.
(Facoltativo) Specifica altre opzioni di configurazione. Per ulteriori informazioni, consulta Opzioni di configurazione durante la creazione dell'istanza.
Per creare e avviare l'istanza, fai clic su Crea.
gcloud
Invia una richiesta tramite gcloud CLI per creare un'istanza con
il flag --source-instance-template ed esegui l'override delle proprietà che desideri
con il flag gcloud appropriato. Per visualizzare un elenco dei flag applicabili,
consulta la documentazione di 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 Persistent Disk e di un disco secondario di un template di istanza:
gcloud compute instances create example-instance \
--source-instance-template 1234567890 --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 di cui desideri eseguire l'override nel corpo
della richiesta quando crei una richiesta normale di
creare un'istanza.
Il comportamento di override nell'API segue le regole di 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 template di istanza verrà sostituito con il valore
del campo di base nella richiesta. I campi di base includono
machineType,sourceImage,namee così via. - Se esegui l'override di un campo ripetuto, tutti i valori ripetuti per quella proprietà
verranno sostituiti con i valori corrispondenti forniti nella richiesta.
I campi ripetuti sono in genere proprietà di tipo
list. Ad esempio,disksenetworkInterfacessono campi ripetuti. - Se esegui l'override di un
nested object, l'oggetto nel template 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, a quest'ultimo si applicano le 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 che tu abbia un template di istanza con due dischi
non di avvio, ma che tu voglia eseguire l'override di uno dei dischi. Nella richiesta devi fornire l'intera
specifica disks, inclusi i dischi che vuoi conservare.
L'URL della 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/1234567890
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"
}
Passaggi successivi
- Leggi la documentazione relativa alle istanze VM preemptible.
- Scopri di più sugli script di arresto.
- Consulta i prezzi delle istanze preemptible.
- Connettiti all'istanza.