Attiva l'arresto normale in un'istanza Compute Engine

Questo documento spiega come attivare l'arresto normale in un'istanza Compute Engine nuova o esistente.

Quando attivi l'arresto normale in un'istanza di computing, puoi concedere al sistema operativo guest fino a sei ore per eseguire l'arresto correttamente quando interrompi o elimini l'istanza di computing. In questo modo, eviti la perdita di dati o la corruzione dei file system quando le tue applicazioni hanno bisogno di più tempo per completare le attività in esecuzione. Per scoprire di più sui requisiti e sulle limitazioni che si applicano quando esegui l'arresto normale di un'istanza di computing, consulta Informazioni sull'arresto normale.

Prima di iniziare

  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione verifica la tua identità per l'accesso ad API e servizi Cloud de Confiance by S3NS . Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:

    Seleziona la scheda in base a come prevedi di utilizzare gli esempi in questa pagina:

    Console

    Quando utilizzi la console Cloud de Confiance per accedere ai servizi e alle API Cloud de Confiance by S3NS , non devi configurare l'autenticazione.

    gcloud

    1. Installa Google Cloud CLI, quindi accedi a gcloud CLI con la tua identità federata. Dopo aver eseguito l'accesso, inizializza Google Cloud CLI eseguendo il comando seguente:

      gcloud init
  • Imposta una regione e una zona predefinite.
  • 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, quindi accedi a gcloud CLI con la tua identità federata.

    Per saperne di più, consulta Autenticati per usare REST nella documentazione sull'autenticazione di Cloud de Confiance .

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:

  • Per creare istanze di computing:
    • 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 da utilizzare per la VM: 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 di computing esistente: compute.instances.update sull'istanza di computing

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 di computing esistente

Se attivi l'arresto normale in un'istanza di computing esistente, devi riavviarla come descritto in questa sezione.

Per attivare l'arresto normale in un'istanza di computing esistente, seleziona una delle seguenti opzioni:

Console

  1. Nella console Cloud de Confiance , vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Nella colonna Nome, fai clic sul nome dell'istanza di computing in cui vuoi attivare l'arresto normale. Viene visualizzata la pagina dei dettagli dell'istanza di computing.

  3. Fai clic su Modifica.

  4. Nella sezione Gestione, segui questi passaggi:

    1. Seleziona la casella di controllo Esegui l'arresto normale della VM.

    2. Nel campo Durata massima visualizzato, inserisci il numero di minuti o secondi che vuoi che duri l'arresto normale. Il valore deve essere compreso tra un secondo e 360 minuti (sei ore).

  5. Fai clic su Salva.

gcloud

Per attivare l'arresto normale in un'istanza di computing esistente, utilizza il comando gcloud compute instances update con i flag --graceful-shutdown e --graceful-shutdown-max-duration:

gcloud compute instances update INSTANCE_NAME \
    --graceful-shutdown \
    --graceful-shutdown-max-duration=MAX_DURATION \
    --zone=ZONE

Sostituisci quanto segue:

  • INSTANCE_NAME: il nome dell'istanza di computing.

  • MAX_DURATION: la durata massima dell'arresto normale. Il valore deve essere formattato come numero di ore, minuti o secondi seguito rispettivamente da h, m e s. Ad esempio, specifica 1h per un'ora o 20m10s per 20 minuti e 10 secondi. Il valore deve essere compreso tra un secondo e sei ore.

  • ZONE: la zona in cui si trova l'istanza di computing.

REST

  1. Crea un file JSON vuoto.

  2. Per visualizzare le proprietà di un'istanza di computing esistente, effettua una richiesta GET al metodo instances.get:

    GET https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del progetto in cui si trova l'istanza di computing

    • ZONE: la zona in cui si trova l'istanza di computing.

    • INSTANCE_NAME: il nome di un'istanza di computing esistente.

  3. Nel file JSON vuoto che hai creato nei passaggi precedenti, procedi in questo modo:

    1. Inserisci i dettagli di configurazione dell'istanza di computing dall'output della richiesta GET.

    2. Nel campo scheduling, aggiungi il campo gracefulShutdown come indicato di seguito:

      {
        ...
        "scheduling": {
          ...
          "gracefulShutdown": {
            "enabled": true,
            "maxDuration": {
              "seconds": "MAX_DURATION"
            }
          }
        },
        ...
      }
      

      Sostituisci MAX_DURATION con la durata massima dell'arresto normale, in secondi. Il valore deve essere compreso tra 1 (un secondo) e 21600 (21.600 secondi o sei ore).

  4. Per aggiornare l'istanza di computing e riavviarla, invia una richiesta PUT al metodo instances.update. Nella richiesta, segui questi passaggi:

    • Nell'URL della richiesta, includi il parametro di query mostDisruptiveAllowedAction impostato su RESTART.

    • Nel corpo della richiesta, includi le proprietà dell'istanza di computing dal file JSON che hai creato e aggiornato nei passaggi precedenti.

    La richiesta PUT per aggiornare l'istanza di computing è simile alla seguente:

    PUT https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME?mostDisruptiveAllowedAction=RESTART
    
    {
      ...
      "scheduling": {
        ...
        "gracefulShutdown": {
          "enabled": true
        }
      },
      ...
    }
    

Per saperne di più sull'aggiornamento delle proprietà di un'istanza di computing, consulta Aggiorna le proprietà delle istanze.

Attiva l'arresto normale durante la creazione di un'istanza di computing

Per creare un'istanza di computing in cui è attivato l'arresto normale, seleziona una delle seguenti opzioni:

Console

  1. Nella console Cloud de Confiance , vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Fai clic su Crea istanza. Viene visualizzata la pagina Crea un'istanza.

  3. Nel campo Nome, inserisci un nome per l'istanza di computing.

  4. Negli elenchi Regione e Zona, inserisci la regione e la zona in cui creare l'istanza di computing.

  5. Specifica il tipo di macchina per l'istanza di computing.

  6. Espandi la sezione Impostazioni avanzate del modello di provisioning delle VM e segui questi passaggi:

    1. Seleziona la casella di controllo Esegui l'arresto normale della VM.

    2. Nel campo Durata massima visualizzato, inserisci il numero di minuti o secondi che vuoi che duri l'arresto normale. Il valore deve essere compreso tra un secondo e 360 minuti (sei ore).

  7. Fai clic su Crea.

gcloud

Per creare un'istanza di computing in cui è abilitato l'arresto normale, utilizza il comando gcloud compute instances create con il flag --graceful-shutdown:

gcloud compute instances create INSTANCE_NAME \
    --graceful-shutdown \
    --graceful-shutdown-max-duration=MAX_DURATION \
    --machine-type=MACHINE_TYPE \
    --zone=ZONE

Sostituisci quanto segue:

  • INSTANCE_NAME: il nome dell'istanza di computing.

  • MAX_DURATION: la durata massima dell'arresto normale. Il valore deve essere formattato come numero di ore, minuti o secondi seguito rispettivamente da h, m e s. Ad esempio, specifica 1h per un'ora o 20m10s per 20 minuti e 10 secondi. Il valore deve essere compreso tra un secondo e sei ore.

  • MACHINE_TYPE: il tipo di macchina da utilizzare per l'istanza di computing.

  • ZONE: la zona in cui creare l'istanza di computing.

REST

Per creare un'istanza di computing in cui è abilitato l'arresto normale, effettua una richiesta POST al metodo instances.insert. Nel corpo della richiesta, includi il campo gracefulShutdown:

POST https://compute.s3nsapis.fr/compute/v1/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 quanto segue:

  • PROJECT_ID: l'ID del progetto in cui creare l'istanza di computing

  • ZONE: la zona in cui creare l'istanza di computing.

  • INSTANCE_NAME: il nome dell'istanza di computing.

  • MACHINE_TYPE: il tipo di macchina per l'istanza di computing.

  • IMAGE_PROJECT: il progetto di immagini che contiene l'immagine, ad esempio debian-cloud. Per saperne di più sui progetti di immagini supportati, consulta 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 specifichi family/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.

  • MAX_DURATION: la durata massima dell'arresto normale, in secondi. Il valore deve essere compreso tra 1 (un secondo) e 21600 (21.600 secondi o sei ore).

Per saperne di più sulla creazione di un'istanza di computing, consulta Crea e avvia un'istanza Compute Engine.

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 predefinito per l'arresto normale è di 10 minuti. Se vuoi, puoi specificare un periodo personalizzato compreso tra un secondo e sei ore. 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

  1. Nella console Cloud de Confiance , vai alla pagina Template di istanza.

    Vai a Template di istanza

  2. Fai clic su Crea template di istanza. Viene visualizzata la pagina Crea un template di istanza.

  3. Nel campo Nome, inserisci un nome per il template di istanza.

  4. Nella sezione Località, seleziona se vuoi creare un template di istanza regionale o globale in base al tuo caso d'uso:

    • Per ridurre la dipendenza tra regioni, crea un template di istanza regionale completando i seguenti passaggi:

      1. Seleziona A livello di regione.

      2. Nel campo Regione, seleziona la regione in cui creare il template di istanza.

    • Per utilizzare il template di istanza in più regioni, seleziona Globale.

  5. Nella sezione Configurazione macchina, specifica un tipo di macchina.

  6. Espandi la sezione Impostazioni avanzate del modello di provisioning delle VM e segui questi passaggi:

    1. Seleziona la casella di controllo Esegui l'arresto normale della VM.

    2. Nel campo Durata massima visualizzato, inserisci il numero di minuti o secondi che vuoi che duri l'arresto normale. Il valore deve essere compreso tra un secondo e 360 minuti (sei ore).

  7. Fai clic su Crea.

gcloud

Per creare un template di istanza in cui è abilitato l'arresto normale, utilizza il comando gcloud 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. Se vuoi creare un template di istanza globale, utilizza lo stesso comando senza il flag --instance-template-region.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --graceful-shutdown \
    --graceful-shutdown-max-duration=MAX_DURATION
    --instance-template-region=REGION \
    --machine-type=MACHINE_TYPE

Sostituisci quanto segue:

  • INSTANCE_TEMPLATE_NAME: il nome del template di istanza di computing.

  • MAX_DURATION: la durata massima dell'arresto normale. Il valore deve essere formattato come numero di ore, minuti o secondi seguito rispettivamente da h, m e s. Ad esempio, specifica 1h per un'ora o 20m10s per 20 minuti e 10 secondi. Il valore deve essere compreso tra un secondo e sei ore.

  • REGION: la regione in cui creare il template di istanza di computing.

  • MACHINE_TYPE: il tipo di macchina per le istanze di computing che crei utilizzando il template di istanza.

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.s3nsapis.fr/compute/v1/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,
        "maxDuration": {
          "seconds": "MAX_DURATION"
        }
      }
    }
  }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui creare il template di istanza.

  • REGION: la regione in cui creare il template di istanza di computing.

  • INSTANCE_TEMPLATE_NAME: il nome del template di istanza di computing.

  • IMAGE_PROJECT: il progetto di immagini che contiene l'immagine, ad esempio debian-cloud. Per saperne di più sui progetti di immagini supportati, consulta 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 specifichi family/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 di computing che crei utilizzando il template di istanza.

  • MAX_DURATION: la durata massima dell'arresto normale, in secondi. Il valore deve essere compreso tra 1 (un secondo) e 21600 (21.600 secondi o sei ore).

Per altre opzioni di configurazione durante la creazione di un template di istanza, consulta Crea modelli di istanza.

Passaggi successivi