Questo documento spiega come attivare l'arresto normale in un'istanza Compute Engine nuova o esistente. Per scoprire di più sull'arresto normale, consulta la Panoramica sull'arresto normale.
Quando attivi l'arresto normale in un'istanza, puoi concedere al sistema operativo guest fino a un'ora per eseguire l'arresto correttamente quando interrompi o elimini l'istanza. In questo modo contribuisci a evitare potenziali perdite di dati o la corruzione dei file system.
Prima di iniziare
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è
il processo mediante il quale la tua identità viene verificata per l'accesso a servizi e API di Google Cloud
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su
Compute Engine selezionando una delle seguenti opzioni:
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
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
-
Per creare istanze:
compute.instances.create
sul progetto- Per utilizzare un'immagine personalizzata per creare la VM:
compute.images.useReadOnly
sull'immagine - Per utilizzare uno snapshot per creare la VM:
compute.snapshots.useReadOnly
sullo snapshot - Per utilizzare un template di istanza per creare la VM:
compute.instanceTemplates.useReadOnly
sul template di istanza - Per assegnare una rete legacy alla VM:
compute.networks.use
sul progetto - Per specificare un indirizzo IP statico per la VM:
compute.addresses.use
sul progetto - Per assegnare un indirizzo IP esterno alla VM quando viene utilizzata una rete legacy:
compute.networks.useExternalIp
sul progetto - Per specificare una subnet per la VM:
compute.subnetworks.use
sul progetto o sulla subnet scelta - Per assegnare un indirizzo IP esterno alla VM quando viene utilizzata una rete VPC:
compute.subnetworks.useExternalIp
sul progetto o sulla subnet scelta - Per impostare i metadati dell'istanza VM per la VM:
compute.instances.setMetadata
sul progetto - Per impostare i tag per la VM:
compute.instances.setTags
sulla VM - Per impostare le etichette per la VM:
compute.instances.setLabels
sulla VM - Per impostare un service account che la VM possa utilizzare:
compute.instances.setServiceAccount
sulla VM - Per creare un nuovo disco per la VM:
compute.disks.create
sul progetto - Per collegare un disco esistente in modalità di sola lettura o lettura/scrittura:
compute.disks.use
sul disco - Per collegare un disco esistente in modalità di sola lettura:
compute.disks.useReadOnly
sul disco
-
Per creare un template di istanza:
compute.instanceTemplates.create
sul progetto -
Per attivare l'arresto normale in un'istanza esistente:
compute.instances.update
sull'istanza Attiva l'arresto normale durante la creazione collettiva di istanze
Attiva l'arresto normale durante la creazione di un template di istanza
Nella console Google Cloud , vai alla pagina Istanze VM.
Nella colonna Nome, fai clic sul nome dell'istanza in cui vuoi attivare l'arresto normale.
Viene visualizzata la pagina dei dettagli dell'istanza.
Fai clic su
Modifica.Nella sezione Gestione, segui questi passaggi:
Seleziona la casella di controllo Esegui l'arresto normale della VM.
(Facoltativo) Per specificare un periodo di arresto normale personalizzato, specifica una durata nel campo Durata massima.
Fai clic su Salva.
INSTANCE_NAME
: il nome dell'istanzaZONE
: la zona in cui si trova l'istanzaCrea un file JSON vuoto.
Per visualizzare le proprietà di un'istanza esistente, effettua una richiesta
GET
al metodoinstances.get
beta:GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto in cui si trova l'istanzaZONE
: la zona in cui si trova l'istanzaINSTANCE_NAME
: il nome di un'istanza esistente
Nel file JSON vuoto che hai creato nei passaggi precedenti, procedi in questo modo:
Inserisci i dettagli di configurazione dell'istanza dall'output della richiesta
GET
.Nel campo
scheduling
, aggiungi il campogracefulShutdown
come indicato di seguito:{ ... "scheduling": { ... "gracefulShutdown": { "enabled": true } }, ... }
In via facoltativa, per specificare un periodo di arresto normale personalizzato, includi il flag
maxDuration
:{ ... "scheduling": { ... "gracefulShutdown": { ... "enabled": true, "maxDuration": { "seconds": "MAX_DURATION" } } }, ... }
Sostituisci
MAX_DURATION
con una durata in secondi per il periodo di arresto normale. Il valore deve essere compreso tra1
e3600
, vale a dire 3600 secondi (un'ora).
Per aggiornare l'istanza e riavviarla, invia una richiesta
PUT
al metodoinstances.update
beta. Nella richiesta, segui questi passaggi:Nell'URL della richiesta, includi il parametro di query
mostDisruptiveAllowedAction
impostato suRESTART
.Nel corpo della richiesta, includi le proprietà dell'istanza dal file JSON che hai creato e aggiornato nei passaggi precedenti.
La richiesta
PUT
per aggiornare l'istanza è simile alla seguente:PUT https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME?mostDisruptiveAllowedAction=RESTART { ... "scheduling": { ... "gracefulShutdown": { "enabled": true } }, ... }
Nella console Google Cloud , vai alla pagina Istanze VM.
Fai clic su Crea istanza.
Viene visualizzata la pagina Crea un'istanza.
Specifica un Nome per l'istanza.
Specifica la Regione e la Zona in cui creare l'istanza.
Specifica un tipo di macchina per l'istanza.
Nel menu di navigazione, fai clic su Avanzato.
Espandi la sezione
Impostazioni avanzate del modello di provisioning delle VM e segui questi passaggi:Seleziona la casella di controllo Esegui l'arresto normale della VM.
(Facoltativo) Per specificare un periodo di arresto normale personalizzato, specifica una durata nel campo Durata massima.
Fai clic su Crea.
INSTANCE_NAME
: il nome dell'istanzaMACHINE_TYPE
: il tipo di macchina da usare per l'istanzaZONE
: la zona in cui creare l'istanzaPROJECT_ID
: l'ID del progetto in cui creare l'istanzaZONE
: la zona in cui creare l'istanzaINSTANCE_NAME
: il nome dell'istanzaMACHINE_TYPE
: il tipo di macchina per l'istanzaIMAGE_PROJECT
: il progetto di immagini che contiene l'immagine, ad esempiodebian-cloud
. Per saperne di più sui progetti di immagini supportati, vedi Immagini pubbliche.IMAGE
: specifica una delle seguenti opzioni:Una versione specifica dell'immagine sistema operativo, ad esempio
debian-12-bookworm-v20240617
.Una famiglia di immagini, che deve essere formattata come
family/IMAGE_FAMILY
. Questa formattazione specifica l'immagine sistema operativo più recente e non deprecata. Ad esempio, se specifichifamily/debian-12
, viene utilizzata l'ultima versione della famiglia di immagini Debian 12. Per saperne di più sull'utilizzo delle famiglie di immagini, consulta le best practice per le famiglie di immagini.
COUNT
: il numero di istanze da creare.MACHINE_TYPE
: il tipo di macchina per le istanze.NAME_PATTERN
: il pattern del nome per le istanze. Per sostituire una sequenza di numeri in un nome dell'istanza, utilizza una sequenza di caratteri hash (#
). Ad esempio, l'utilizzo diinstance-#
per il pattern del nome genera istanze con nomi che iniziano coninstance-1
,instance-2
e via di seguito fino al numero di VM specificato daCOUNT
.ZONE
: la zona in cui creare le istanze in blocco.PROJECT_ID
: l'ID del progetto in cui creare le istanze in blocco.ZONE
: la zona in cui creare le istanze in blocco.COUNT
: il numero di istanze da creare.NAME_PATTERN
: il pattern del nome per le istanze. Per sostituire una sequenza di numeri in un nome dell'istanza, utilizza una sequenza di caratteri hash (#
). Ad esempio, l'utilizzo diinstance-#
per il pattern del nome genera istanze con nomi che iniziano coninstance-1
,instance-2
e via di seguito fino al numero di VM specificato daCOUNT
.MACHINE_TYPE
: il tipo di macchina per le istanze.IMAGE_PROJECT
: il progetto di immagini che contiene l'immagine, ad esempiodebian-cloud
. Per saperne di più sui progetti di immagini supportati, vedi Immagini pubbliche.IMAGE
: specifica una delle seguenti opzioni:Una versione specifica dell'immagine sistema operativo, ad esempio
debian-12-bookworm-v20240617
.Una famiglia di immagini, che deve essere formattata come
family/IMAGE_FAMILY
. Questa formattazione specifica l'immagine sistema operativo più recente e non deprecata. Ad esempio, se specifichifamily/debian-12
, viene utilizzata l'ultima versione della famiglia di immagini Debian 12. Per saperne di più sull'utilizzo delle famiglie di immagini, consulta le best practice per le famiglie di immagini.
ZONE
: la zona in cui creare le istanze in blocco.Nella console Google Cloud , vai alla pagina Modelli di istanza.
Fai clic su Crea template di istanza.
Viene visualizzata la pagina Crea un template di istanza.
Nel campo Nome, inserisci un nome per il template di istanza.
Seleziona la Località come descritto di seguito:
Per ridurre la dipendenza tra regioni creando un template di istanza regionale, segui questi passaggi:
Scegli Regionale, se non è già selezionato.
Nel campo Regione, seleziona la regione in cui creare il template di istanza.
Altrimenti, per utilizzare il template di istanza in più regioni, scegli Globale.
Nella sezione Configurazione macchina, specifica un tipo di macchina.
Espandi la sezione
Impostazioni avanzate del modello di provisioning delle VM e segui questi passaggi:Seleziona la casella di controllo Esegui l'arresto normale della VM.
(Facoltativo) Per specificare un periodo di arresto normale personalizzato, specifica una durata nel campo Durata massima.
Fai clic su Crea.
INSTANCE_TEMPLATE_NAME
: il nome del template di istanzaREGION
: la regione in cui creare il template di istanzaMACHINE_TYPE
: il tipo di macchina per le istanze create utilizzando il template di istanzaPer creare un template di istanza globale: metodo
instanceTemplates.insert
beta.Per creare un template di istanza regionale: metodo
regionInstanceTemplates.insert
beta.PROJECT_ID
: l'ID del progetto in cui creare il template di istanza.REGION
: la regione in cui creare il template di istanza.INSTANCE_TEMPLATE_NAME
: il nome del template di istanzaIMAGE_PROJECT
: il progetto di immagini che contiene l'immagine, ad esempiodebian-cloud
. Per saperne di più sui progetti di immagini supportati, vedi Immagini pubbliche.IMAGE
: specifica una delle seguenti opzioni:Una versione specifica dell'immagine sistema operativo, ad esempio
debian-12-bookworm-v20240617
.Una famiglia di immagini, che deve essere formattata come
family/IMAGE_FAMILY
. Questa formattazione specifica l'immagine sistema operativo più recente e non deprecata. Ad esempio, se specifichifamily/debian-12
, viene utilizzata l'ultima versione della famiglia di immagini Debian 12. Per saperne di più sull'utilizzo delle famiglie di immagini, consulta le best practice per le famiglie di immagini.
MACHINE_TYPE
: il tipo di macchina per le istanze create utilizzando il template di istanza
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.
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
Per saperne di più, consulta la sezione Autenticarsi per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud .
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per abilitare l'arresto normale in un'istanza di computing, chiedi all'amministratore di concederti il ruolo IAM Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1
) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.Questo ruolo predefinito contiene le autorizzazioni necessarie per abilitare l'arresto normale in un'istanza di computing. Per visualizzare con esattezza le autorizzazioni richieste, espandi la sezione Autorizzazioni richieste:
Autorizzazioni obbligatorie
Per abilitare l'arresto normale in un'istanza di computing sono necessarie le seguenti autorizzazioni:
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Attiva l'arresto normale
Per abilitare l'arresto normale in un'istanza di computing, utilizza uno dei seguenti metodi:
Attiva l'arresto normale in un'istanza esistente
Puoi attivare l'arresto normale in un'istanza di computing esistente senza interromperla o riavviarla. Il periodo di arresto normale predefinito è 10 minuti, ma puoi specificarne uno personalizzato compreso tra un secondo e un'ora.
Per attivare l'arresto normale in un'istanza esistente, seleziona una delle seguenti opzioni:
Console
gcloud
Per attivare l'arresto normale in un'istanza esistente, utilizza il comando
gcloud beta compute instances update
con il flag--graceful-shutdown
:gcloud beta compute instances update INSTANCE_NAME \ --graceful-shutdown \ --zone=ZONE
Sostituisci quanto segue:
In via facoltativa, per specificare un periodo di arresto normale personalizzato, includi il flag
--graceful-shutdown-max-duration
:gcloud beta compute instances update INSTANCE_NAME \ --graceful-shutdown \ --graceful-shutdown-max-duration=MAX_DURATION \ --zone=ZONE
Sostituisci
MAX_DURATION
con una durata per il periodo di arresto. Il valore deve essere formattato come numero di ore, minuti o secondi seguito rispettivamente dah
,m
es
. Ad esempio, specifica1h
per un'ora o20m10s
per 20 minuti e 10 secondi.REST
Per ulteriori informazioni sull'aggiornamento delle proprietà di un'istanza, consulta Aggiorna le proprietà delle istanze.
Attiva l'arresto normale durante la creazione di un'istanza
Quando crei un'istanza di computing in cui è abilitato l'arresto normale, il periodo di arresto predefinito è di 10 minuti. Se vuoi, puoi specificare un periodo di arresto personalizzato compreso tra un secondo e un'ora.
Per creare un'istanza in cui è attivato l'arresto normale, seleziona una delle seguenti opzioni:
Console
gcloud
Per creare un'istanza in cui è abilitato l'arresto normale, utilizza il comando
gcloud beta compute instances create
con il flag--graceful-shutdown
:gcloud beta compute instances create INSTANCE_NAME \ --graceful-shutdown \ --machine-type=MACHINE_TYPE \ --zone=ZONE
Sostituisci quanto segue:
In via facoltativa, per specificare un periodo di arresto normale personalizzato, includi il flag
--graceful-shutdown-max-duration
:gcloud beta compute instances create INSTANCE_NAME \ --graceful-shutdown \ --graceful-shutdown-max-duration=MAX_DURATION \ --machine-type=MACHINE_TYPE \ --zone=ZONE
Sostituisci
MAX_DURATION
con una durata per il periodo di arresto normale. Il valore deve essere formattato in numero di ore, minuti o secondi seguito rispettivamente dah
,m
es
. Ad esempio, specifica1h
per un'ora o20m10s
per 20 minuti e 10 secondi.REST
Per creare un'istanza in cui è abilitato l'arresto normale, effettua una richiesta
POST
al metodobeta.instances.insert
. Nel corpo della richiesta, includi il campogracefulShutdown
:POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances { "name": "INSTANCE_NAME", "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE", "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ], "networkInterfaces": [ { "network": "global/networks/default" } ], "scheduling": { "gracefulShutdown": { "enabled": true } } }
Sostituisci quanto segue:
In via facoltativa, per specificare un periodo di arresto normale personalizzato, includi il campo
maxDuration
nel corpo della richiesta:POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances { "name": "INSTANCE_NAME", "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE", "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ], "networkInterfaces": [ { "network": "global/networks/default" } ], "scheduling": { "gracefulShutdown": { "enabled": true, "maxDuration": { "seconds": "MAX_DURATION" } } } }
Sostituisci
MAX_DURATION
con una durata in secondi per il periodo di arresto normale. Il valore deve essere compreso tra1
e3600
, vale a dire 3600 secondi (un'ora).Per altre opzioni di configurazione durante la creazione di un'istanza, consulta Crea e avvia un'istanza Compute Engine.
Attiva l'arresto normale durante la creazione in blocco di istanze
Quando crei in blocco le istanze di computing in cui è abilitato l'arresto normale, il periodo di arresto predefinito è di 10 minuti. Se vuoi, puoi specificare un periodo di arresto personalizzato compreso tra un secondo e un'ora.
Per creare in blocco istanze in cui è attivato l'arresto normale, seleziona una delle seguenti opzioni:
gcloud
Per creare in blocco istanze in cui è abilitato l'arresto normale, utilizza il comando
gcloud beta compute instances bulk create
con il flag--graceful-shutdown
.Ad esempio, per creare istanze in blocco in un'unica zona e specificare un pattern del nome per le istanze, esegui il seguente comando:
gcloud beta compute instances bulk create \ --count=COUNT \ --graceful-shutdown \ --machine-type=MACHINE_TYPE \ --name-pattern="NAME_PATTERN" \ --zone=ZONE
Sostituisci quanto segue:
In via facoltativa, per specificare un periodo di arresto normale personalizzato, includi il flag
--graceful-shutdown-max-duration
:gcloud beta compute instances bulk create \ --count=COUNT \ --graceful-shutdown \ --graceful-shutdown-max-duration=MAX_DURATION \ --machine-type=MACHINE_TYPE \ --name-pattern="NAME_PATTERN" \ --zone=ZONE
Sostituisci
MAX_DURATION
con una durata per il periodo di arresto normale. Il valore deve essere formattato in numero di ore, minuti o secondi seguito rispettivamente dah
,m
es
. Ad esempio, specifica1h
per un'ora o20m10s
per 20 minuti e 10 secondi.REST
Per creare in blocco le istanze in cui è abilitato l'arresto normale, effettua una richiesta
POST
al metodoinstances.bulkInsert
beta. Nel corpo della richiesta, includi il campogracefulShutdown
.Ad esempio, per creare in blocco più istanze in un'unica zona e specificare un pattern di nomi per le istanze, invia una richiesta
POST
nel modo seguente:POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert { "count": COUNT, "namePattern": "NAME_PATTERN", "instanceProperties": { "machineType": "MACHINE_TYPE", "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ], "networkInterfaces": [ { "network": "global/networks/default" } ], "scheduling": { "gracefulShutdown": { "enabled": true } } } }
Sostituisci quanto segue:
In via facoltativa, per specificare un periodo di arresto normale personalizzato, includi il campo
maxDuration
nel corpo della richiesta:POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert { "count": COUNT, "namePattern": "NAME_PATTERN", "instanceProperties": { "machineType": "MACHINE_TYPE", "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ], "networkInterfaces": [ { "network": "global/networks/default" } ], "scheduling": { "gracefulShutdown": { "enabled": true, "maxDuration": { "seconds": "MAX_DURATION" } } } } }
Sostituisci
MAX_DURATION
con una durata in secondi per il periodo di arresto normale. Il valore deve essere compreso tra1
e3600
, vale a dire 3600 secondi (un'ora).Per altre opzioni di configurazione durante la creazione collettiva di istanze, consulta Creare VM in blocco.
Attiva l'arresto normale durante la creazione di un template di istanza
Quando crei un template di istanza in cui è attivato l'arresto normale, il periodo di arresto predefinito è di 10 minuti. Se vuoi, puoi specificare un periodo di arresto personalizzato compreso tra un secondo e un'ora.
L'arresto normale è attivato per tutte le istanze di computing create utilizzando il template di istanza.
Per creare un template di istanza in cui è attivato l'arresto normale, seleziona una delle seguenti opzioni:
Console
gcloud
Per creare un'istanza in cui è abilitato l'arresto normale, utilizza il comando
gcloud beta compute instance-templates create
con il flag--graceful-shutdown
.Ad esempio, per creare un template di istanza regionale con l'arresto normale abilitato, esegui il seguente comando:
gcloud beta compute instance-templates create INSTANCE_TEMPLATE_NAME \ --graceful-shutdown \ --instance-template-region=REGION \ --machine-type=MACHINE_TYPE
Sostituisci quanto segue:
In via facoltativa, per specificare un periodo di arresto normale personalizzato, includi il flag
--graceful-shutdown-max-duration
.gcloud beta compute instance-templates create INSTANCE_TEMPLATE_NAME \ --graceful-shutdown \ --graceful-shutdown-max-duration=MAX_DURATION \ --instance-template-region=REGION \ --machine-type=MACHINE_TYPE
Sostituisci
MAX_DURATION
con una durata per il periodo di arresto. Il valore deve essere formattato come numero di ore, minuti o secondi seguito rispettivamente dah
,m
es
. Ad esempio, specifica1h
per un'ora o20m10s
per 20 minuti e 10 secondi.REST
Per creare un template di istanza in cui è attivato l'arresto normale, effettua una richiesta
POST
con uno dei seguenti metodi:Ad esempio, per creare un template di istanza regionale con l'arresto normale abilitato, effettua una richiesta
POST
come segue:POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceTemplates { "name": "INSTANCE_TEMPLATE_NAME", "properties": { "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ], "machineType": "MACHINE_TYPE", "networkInterfaces": [ { "network": "global/networks/default" } ], "scheduling": { "gracefulShutdown": { "enabled": true } } } }
Sostituisci quanto segue:
In via facoltativa, per specificare un periodo di arresto normale personalizzato, includi il campo
maxDuration
nel corpo della richiesta.POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/global/instanceTemplates { "name": "INSTANCE_TEMPLATE_NAME", "properties": { "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ], "machineType": "MACHINE_TYPE", "networkInterfaces": [ { "network": "global/networks/default" } ], "scheduling": { "gracefulShutdown": { "enabled": true, "maxDuration": { "seconds": "MAX_DURATION" } } } } }
Sostituisci
MAX_DURATION
con una durata in secondi per il periodo di arresto. Il valore deve essere compreso tra1
e3600
, vale a dire 3600 secondi (un'ora).Per altre opzioni di configurazione durante la creazione di un template di istanza, consulta Crea modelli di istanza.
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 2025-07-09 UTC.
-