Dopo aver creato un'immagine macchina, puoi utilizzarla per creare copie dell'origine di un'istanza VM. Per ulteriori informazioni sugli utilizzi delle immagini macchina, vedi quando utilizzare un'immagine macchina.
Un'immagine macchina contiene la maggior parte delle informazioni e dei dati necessari per clonare in esecuzione in un'istanza Compute Engine.
Un'immagine macchina non è modificabile. Tuttavia, puoi sostituire quasi tutte le proprietà l'immagine macchina durante la creazione di un'istanza dall'immagine macchina.
Puoi creare istanze dalle immagini macchina utilizzando Console Google Cloud, Google Cloud CLI, oppure REST.
Prima di iniziare
-
Se non l'hai già fatto, configura l'autenticazione.
Autenticazione è
la procedura di verifica dell'identità per l'accesso ai servizi e alle API di Google Cloud.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi eseguire l'autenticazione
Compute Engine come segue.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
Puoi creare al massimo 6 VM da un'immagine macchina di origine in 60 minuti. Se superi questo limite, l'operazione di creazione dell'istanza non riesce e restituisce un errore simile al seguente:
Operation rate exceeded for resource 'projects/test/global/machineImages/machine-image-1'. Too frequent operations from the source resource.
Per creare più VM rispetto al limite definito (6 VM in 60 minuti), crea immagini macchina aggiuntive dalla VM di origine o creare macchine di breve durata dalle nuove VM. Puoi quindi creare il numero di VM richiesto le nuove immagini macchina.
Non puoi creare VM da immagini macchina con etichette permanenti a livello di regione collegate i dischi permanenti usando la console Google Cloud. Utilizza Google Cloud CLI o REST e specifica i parametri
replicaZones
edeviceName
per ogni regione collegata un disco permanente standard. Per ulteriori informazioni, consulta Creare una VM da un'immagine macchina con override delle proprietà.Nella console Google Cloud, vai alla pagina Crea un'istanza.
Fai clic su Nuova istanza VM da immagine macchina.
Seleziona l'immagine della macchina e fai clic su Continua.
(Facoltativo) Personalizza i dettagli della VM.
Fai clic su Crea.
VM_NAME
: il nome della VM da creare.ZONE
: la zona per la VM.SOURCE_MACHINE_IMAGE_NAME
: l'immagine della macchina da cui creare la VM.PROJECT_ID
: il tuo ID progetto.ZONE
: la zona per il VM.VM_NAME
: il nome della VM da creare.SOURCE_MACHINE_IMAGE_URL
: l'URL completo o parziale di l'immagine della macchina che vuoi utilizzare per creare la VM. Ad esempio, se hai un'immagine macchina chiamatamy-machine-image
in un progetto chiamatomyProject
. I seguenti URL sono validi:https://www.googleapis.com/compute/v1/projects/myProject/global/machineImages/my-machine-image
projects/myProject/global/machineImages/my-machine-image
global/machineImages/my-machine-image
- Non puoi eseguire l'override di alcuna proprietà del disco collegato, ad eccezione del nome del disco durante la creazione di una VM dall'immagine macchina.
Devi specificare il parametro
replicaZones
per ogni regione collegata disco permanente insieme aideviceName
del disco a livello di regione dalla macchina dell'immagine.Se la VM di origine utilizzata per generare l'immagine macchina e la nuova VM appartengono allo stesso progetto e alla stessa regione, si applica quanto segue:
- La maggior parte delle proprietà dell'istanza di origine e della nuova VM sono le stesse. Le proprietà che differiscono sono, ad esempio, gli indirizzi IP temporanei assegnati automaticamente.
- Se l'istanza VM di origine esiste ancora quando crei una nuova VM, la nuova VM non può utilizzare lo stesso nome e la stessa zona dell'origine in esecuzione in un'istanza Compute Engine.
Se la VM di origine utilizzata per generare l'immagine macchina e la nuova VM appartengono allo stesso progetto, ma a regioni diverse, si applica quanto segue:
- Devi eseguire l'override di tutte le risorse a livello di zona e di regione per la nuova VM. Ad esempio, se crei un'istanza VM da un'immagine macchina la cui origine apparteneva a una regione diversa, devi eseguire l'override di risorse come la subnet e le regole firewall a livello di regione. Tuttavia, come bilanciatori del carico e account di servizio, a meno che tu non voglia modificarli.
Nella console Google Cloud, vai alla pagina Crea un'istanza.
Fai clic su Nuova istanza VM da immagine macchina.
Seleziona l'immagine della macchina e fai clic su Continua.
(Facoltativo) Personalizza i dettagli della VM.
Fai clic su Crea.
Per ulteriori dettagli sulla configurazione, consulta Creare un'istanza VM da un dell'immagine.
PROJECT_ID
: l'ID progetto.ZONE
: la zona per il VM.VM_NAME
: il nome della VM da creare.NEW_MACHINE_TYPE
: il valore tipo di macchina che vuoi utilizzare VM.SOURCE_MACHINE_IMAGE_URL
: l'URL completo o parziale di l'immagine della macchina che vuoi utilizzare per creare l'istanza. Ad esempio, se hai un'immagine macchina chiamatamy-machine-image
in un progetto chiamatomyProject
. I seguenti URL sono validi:https://www.googleapis.com/compute/v1/projects/myProject/global/machineImages/my-machine-image
projects/myProject/global/machineImages/my-machine-image
global/machineImages/my-machine-image
- Se sostituisci un campo base, il campo base corrispondente
nell'immagine della macchina viene sostituito dal valore del campo base
nella richiesta. I campi di base includono parametri come
machineType
ename
. - Se sostituisci un campo ripetuto, tutti i valori ripetuti per quella proprietà
vengono 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 nell'immagine macchina viene unita alla specifica dell'oggetto corrispondente la richiesta. Tieni presente 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, vengono considerati come un campo ripetuto sebbene le etichette siano di tipoobject
. Concedi l'accesso alle immagini macchina archiviate in un progetto diverso.
Le autorizzazioni possono essere concesse sul progetto di origine o sulla macchina dell'immagine. Usa il comando
gcloud compute machine-images add-iam-policy-binding
per concedere le autorizzazioni per l'immagine della macchina.gcloud compute machine-images add-iam-policy-binding MACHINE_IMAGE_NAME \ --project=MACHINE_IMAGE_PROJECT \ --member='ACCOUNT_EMAIL' \ --role='roles/compute.admin'
Sostituisci quanto segue:
MACHINE_IMAGE_PROJECT
: l'ID progetto per contenente l'immagine della macchina di origine.MACHINE_IMAGE_NAME
: il nome dell'immagine della macchina a cui vuoi aggiungere l'associazione di autorizzazioni.ACCOUNT_EMAIL
: l'indirizzo email diserviceAccount
ouser
che crea la VM. Assicurati che l'email sia formattata in modo da includere il prefisso richiesto, deve essere uno dei seguenti:user:
indica questa opzione se l'indirizzo email è associato a un account utente. Ad esempio:user:[email protected]
.serviceAccount:
lo specifica se l'indirizzo email è associato a un account di servizio. Ad esempio:serviceAccount:[email protected]
.
Esempio
Ad esempio, per aggiungere Associazione di
compute.admin
all'immagine della macchina denominatamy-machine-image
a l'indirizzo email dell'account di servizio[email protected]
, utilizza il seguente comandogcloud
:gcloud compute machine-images add-iam-policy-binding my-machine-image \ --project=machine-image-project \ --member='serviceAccount:[email protected]' \ --role='roles/compute.admin'
Concedi all'utente che esegue il comando
gcloud compute instances create
Ruolo Utente account di servizio (roles/iam.serviceAccountUser
) sull'account di servizio associato al dell'immagine macchina.Utilizza la Comando
gcloud compute instances create
per creare una VM da un'immagine macchina.gcloud compute instances create VM_NAME \ --project=VM_PROJECT_ID \ --zone=ZONE \ --source-machine-image=projects/MACHINE_IMAGE_PROJECT/global/machineImages/MACHINE_IMAGE_NAME \ --service-account=SERVICE_ACCOUNT_EMAIL --subnet=SUBNET
Sostituisci quanto segue:
VM_PROJECT_ID
: l'ID del progetto in cui vuoi creare la VMVM_NAME
: il nome della VM da creareZONE
: la zona per il VMMACHINE_IMAGE_PROJECT
: l'ID progetto del progetto in cui si trova l'immagine della macchinaMACHINE_IMAGE_NAME
: l'immagine della macchina da creare la VMSERVICE_ACCOUNT_EMAIL
: l'indirizzo email del che vuoi collegare alla VMSUBNET
: se la subnet e l'istanza si trovano nella nello stesso progetto, sostituisci SUBNET con il nome di una subnet si trova nella stessa regione dell'istanzaPer specificare una subnet in una rete VPC condiviso, sostituisci
SUBNET
con una stringa nel seguente formato:projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
Sostituisci quanto segue:
HOST_PROJECT_ID
: l'ID progetto del Progetto host VPC condivisoREGION
: la regione della subnetSUBNET_NAME
: il nome della subnet
Esempio
Ad esempio, il comando seguente crea una VM denominata
my-instance
invm-project
, nella zonaus-east1-b
, da un'immagine macchina denominatamy-machine-image
.Il flag
--service-account
specifica l'account di servizio che vuoi da collegare alla VM appena creata. Se non fornisci Questo flag indica che l'account di servizio di origine non può essere condiviso tra entrambi i progetti e l'operazione non riesce.gcloud compute instances create my-instance \ --project=vm-project \ --zone=us-east1-b \ --source-machine-image=projects/machine-image-project/global/machineImages/my-machine-image \ --service-account=000123456789-compute@developer.gserviceaccount.com
Dopo aver creato la VM, l'output è simile al seguente:
Created [https://www.googleapis.com/compute/v1/projects/project-12345/zones/us-east1-b/instances/my-instance]. NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS my-instance us-east1-b e2-standard-2 192.0.2.1 203.224.0.113 RUNNING
- Scopri di più sulle immagini macchina
- Scopri di più sulla creazione di istanze VM
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.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Per ulteriori informazioni, vedi Esegui l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.
Limitazioni
Quando crei VM dalle immagini macchina, si applicano le seguenti limitazioni:
Crea una VM da un'immagine macchina (senza override)
Se vuoi creare una VM basata completamente sull'immagine macchina nessuna modifica alle proprietà, utilizza questo metodo.
Console
gcloud
Utilizza la Comando
gcloud compute instances create
per creare un'istanza da un'immagine macchina.gcloud compute instances create VM_NAME \ --zone=ZONE \ --source-machine-image=SOURCE_MACHINE_IMAGE_NAME
Sostituisci quanto segue:
Esempio
Ad esempio, puoi utilizzare il seguente comando
gcloud
per creare una VM chiamatamy-instance
nella zonaus-east1-b
, da un'immagine macchina denominatamy-machine-image
.gcloud compute instances create my-instance \ --zone=us-east1-b \ --source-machine-image=my-machine-image
Dopo aver creato la VM, l'output è simile al seguente:
Created [https://www.googleapis.com/compute/v1/projects/project-12345/zones/us-east1-b/instances/my-instance]. NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS my-instance us-east1-b e2-standard-2 192.0.2.1 203.224.0.113 RUNNING
REST
Nell'API, crea una richiesta
POST
all'oggetto Metodoinstances.insert
. Nel corpo della richiesta, includi i seguenti parametri:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "VM_NAME", "sourceMachineImage": "SOURCE_MACHINE_IMAGE_URL" }
Sostituisci quanto segue:
Crea una VM da un'immagine macchina con override delle proprietà
Se vuoi creare una VM basata principalmente sull'immagine macchina, con alcune modifiche, puoi usare il comportamento di override. Per utilizzare l'override un comportamento predefinito, passi gli attributi per sostituire le proprietà esistenti dell'immagine macchina quando crei l'istanza.
Quando utilizzi la funzione di override, tieni in considerazione le seguenti note:
Console
gcloud
Utilizza la Comando
gcloud compute instances create
per creare un'istanza da un'immagine macchina e aggiungere le proprietà che vuoi sostituire.Ad esempio, puoi utilizzare il seguente comando
gcloud
per creare una VM chiamatamy-instance
nella zonaus-east1-b
, da un'immagine macchina denominatamy-machine-image
. In questo esempio, vengono applicati degli override per modificare un tipo di macchina, interrompi il criterio di manutenzione dell'host e configura un un disco permanente con il nomeregional-disk-0
.gcloud compute instances create my-instance \ --zone=us-east1-b \ --source-machine-image=my-machine-image \ --machine-type=e2-standard-2 \ --maintenance-policy=TERMINATE \ --create-disk=device-name=boot-device-0,boot=true,auto-delete=true \ --create-disk=device-name=regional-disk-0,\ replica-zones=^:^us-east1-b:us-east1-c,boot=false
REST
Per eseguire l'override delle proprietà dell'immagine macchina durante la creazione della VM, utilizza API
instances.insert()
e fornisci tutti i campi da sostituire nel corpo della richiesta.Nell'API, crea una richiesta
POST
all'oggetto Metodoinstances.insert
. Nel corpo della richiesta, includi il parametrosourceMachineImage
e eventuali override di cui hai bisogno. Puoi aggiungere qualsiasi proprietà che vorresti imposta durante della creazione dell'istanza. Ad esempio, per modificare il tipo di macchina, la chiamata API includerà la ParametromachineType
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "VM_NAME", "machineType": "zones/ZONE/machineTypes/NEW_MACHINE_TYPE", "sourceMachineImage": "SOURCE_MACHINE_IMAGE_URL" }
Sostituisci quanto segue:
Comportamento di override
Il comportamento di override nell'API segue la patch di unione JSON descritte da Google Cloud, RFC 7396. In sintesi, si applicano le seguenti regole:
Ad esempio, se vuoi creare una VM da un'immagine macchina e regionali con la VM, utilizza un override per i dischi puoi specificare l'opzione
replicaZones
. Poichédisks
è un campo ripetuto, devi specificare la configurazione del disco per tutti i dischi collegati e il disco di avvio, non solo i dischi a livello di regione.POST /compute/projects/my-proj/zones/us-west1-a/instances { "name": "vm-from-image", "sourceMachineImage": "global/machineImages/my-machine-image", "disks": [ { "kind": "compute#attachedDisks", "boot": true, "autoDelete": true, "deviceName": "boot-device", "initializeParams": { "sourceImage": "projects/my-proj/global/images/my-image", "diskType": "projects/my-proj/zones/us-west1-a/diskTypes/pd-standard", } }, { "kind": "compute#attachedDisk", "boot": false, "autoDelete": true, "deviceName": "regional-device-0", "initializeParams": { "diskType": "projects/my-proj/zones/us-west1-a/diskTypes/pd-standard", "replicaZones": [ "projects/my-proj/zones/us-west1-a", "projects/my-proj/zones/us-west1-c" ] } } ] }
Crea una VM utilizzando un'immagine macchina di un altro progetto
Quando crei una VM utilizzando un'immagine macchina di un altro progetto, potresti non avere accesso all'account di servizio associato progetto di origine. Se vuoi creare una VM da un'immagine macchina che si trova in un altro progetto, devi assicurarti di avere accesso ed eseguire l'override della proprietà dell'account di servizio sulla nuova VM.
Se condividi un'immagine macchina tra progetti che utilizzano una rete VPC condiviso, devi specificare esplicitamente i dettagli del VPC condiviso quando crei una VM dall'immagine della macchina. Ad esempio, quando crei una VM in un progetto non host, fornisce i dettagli della rete VPC condiviso del progetto host utilizzando Opzioni
--network
,--subnet
o--network-interface
.Le sezioni seguenti descrivono come creare una VM da un'immagine macchina in un altro progetto utilizzando Google Cloud CLI.
Passaggi successivi
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2024-08-02 UTC.
[{ "type": "thumb-down", "id": "hardToUnderstand", "label":"Hard to understand" },{ "type": "thumb-down", "id": "incorrectInformationOrSampleCode", "label":"Incorrect information or sample code" },{ "type": "thumb-down", "id": "missingTheInformationSamplesINeed", "label":"Missing the information/samples I need" },{ "type": "thumb-down", "id": "translationIssue", "label":"Problema di traduzione" },{ "type": "thumb-down", "id": "otherDown", "label":"Altra" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Facile da capire" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Il problema è stato risolto" },{ "type": "thumb-up", "id": "otherUp", "label":"Altra" }] -