Limitare il tempo di esecuzione di una VM


Questo documento spiega come limitare il tempo di esecuzione delle istanze di macchine virtuali (VM) nuove o esistenti e come monitorarlo. Per i gruppi di istanze gestite (MIG), consulta Limitare il tempo di esecuzione di un gruppo di istanze gestite.

Quando limiti il tempo di esecuzione di una VM, puoi programmarne l'interruzione (l'arresto o l'eliminazione) automatica quando raggiunge un limite di tempo specifico (durata o ora). Utilizza i limiti di tempo per ottimizzare i carichi di lavoro temporanei: limitandone automaticamente i tempi di esecuzione, puoi ridurre al minimo i costi e liberare quote.

Per scoprire come arrestare immediatamente una VM, consulta Arrestare o riavviare una VM. Per scoprire come eliminare immediatamente una VM, consulta Eliminare una VM.

Prima di iniziare

  • Per ottenere le autorizzazioni necessarie per limitare il tempo di esecuzione di una VM, chiedi all'amministratore di concederti il ruolo IAM Amministratore istanze Compute (v1) (roles/compute.instanceAdmin.v1) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

    Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è la procedura mediante la quale la tua identità viene verificata per l'accesso alle API e ai servizi 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

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Per saperne di più, consulta Eseguire l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.

Limitazioni

La limitazione del tempo di esecuzione di una VM presenta le seguenti limitazioni:

  • L'azione di interruzione automatica deve essere stop o delete. Non puoi configurare una VM in modo che venga sospesa automaticamente al raggiungimento del limite di tempo.

  • Il limite di tempo minimo è di 30 secondi e il limite di tempo massimo è di 120 giorni.

  • L'interruzione automatica potrebbe richiedere fino a 30 secondi in più rispetto alla durata o al momento specificato per iniziare l'arresto o l'eliminazione della VM.

  • Non puoi utilizzare i limiti di tempo con le VM prerilasciabili precedenti. Utilizza invece i limiti di tempo con le VM spot.

  • I dati dell'unità SSD locale di una VM non possono essere conservati quando la VM viene arrestata automaticamente a causa di un limite di tempo. Per ulteriori informazioni, consulta Interrompere una VM con SSD locale.

Limitare il tempo di esecuzione di una nuova VM

Le sezioni seguenti descrivono come configurare un limite di tempo durante la creazione di una nuova VM. Puoi specificare il limite di tempo, ovvero il momento in cui vuoi che una VM venga interrotta automaticamente, come durata (maxRunDuration) o ora (terminationTime).

Quando decidi il tipo di limite di tempo per una VM, tieni presente che la VM potrebbe essereinterrotta, ad esempio da una richiesta dell'utente o da un evento host. Il comportamento di un limite di tempo varia in base al tipo di interruzione e al tipo di limite di tempo:

  • Il timestamp di terminazione (terminationTimestamp) di una VM è un campo di sola lettura che rappresenta l'ora pianificata per la terminazione automatica ed è definito automaticamente da Compute Engine ogni volta che una VM ha un limite di tempo ed entra nello stato RUNNING.

  • Il timestamp di terminazione viene cancellato automaticamente ogni volta che una VM viene fermata o sospesa. Tuttavia, il timestamp di terminazione non cambia quando reimposti una VM o riavvii una VM.

  • Il timestamp di terminazione viene ridefinito automaticamente ogni volta che la VM viene riavviata o ripresa in base al tipo di limite di tempo impostato:

    • Se imposti una durata per la VM, il timestamp di terminazione viene nuovamente calcolato aggiungendo questa durata all'ora di inizio più recente della VM.
    • Se imposti un orario per la VM, il timestamp di terminazione viene impostato su quell'ora. Tuttavia, l'ora deve essere futura. In caso contrario, tutte le richieste di creazione o riesecuzione della VM non andranno a buon fine finché non aggiornerai o rimuoverai l'ora.

Imposta una durata

Una durata rappresenta il tempo di esecuzione totale che vuoi per una VM. Per creare una VM che viene terminata automaticamente dopo che è stata in esecuzione per una durata specifica, utilizza la console Google Cloud, Google Cloud CLI, Terraform o l'API Compute Engine.

Console

  1. Nella console Google Cloud, vai alla pagina Crea un'istanza.

    Vai a Crea un'istanza

  2. Nella sezione Criteri di disponibilità, espandi Impostazioni avanzate del modello di provisioning delle VM.

  3. Seleziona la casella di controllo Imposta un limite di tempo per la VM. Viene visualizzato il campo Tipo di limite di tempo.

  4. Nel campo Tipo di limite di tempo, seleziona Per ore (valore predefinito) per specificare il limite di tempo come durata. Nel campo seguente, inserisci la durata in ore.

  5. Nell'elenco Al termine della VM, seleziona cosa succede quando il tempo di esecuzione della VM raggiunge il limite di tempo specificato:

    • Per arrestare automaticamente la VM, seleziona Interrompi (impostazione predefinita).
    • Per eliminare la VM, seleziona Elimina.
  6. (Facoltativo) Specifica altre opzioni della VM. Per ulteriori informazioni, consulta Creazione e avvio di un'istanza VM.

  7. Per creare e avviare la VM, fai clic su Crea.

gcloud

Per creare una VM dall'interfaccia alla gcloud CLI, utilizza il comando gcloud compute instances create.

  • Per creare una VM che viene terminata automaticamente dopo una durata specifica, devi includere il flag --max-run-duration.
  • Per specificare l'azione di interruzione, includi il flag --instance-termination-action.
  • Configura il flag --discard-local-ssds-at-termination-timestamp:
    • Se la VM ha SSD locali e l'azione di interruzione (TERMINATION_ACTION) è stop (STOP), devi includere il flag --discard-local-ssds-at-termination-timestamp=true.
    • In caso contrario, ometti il flag --discard-local-ssds-at-termination-timestamp.
gcloud compute instances create VM_NAME \
    --max-run-duration=DURATION \
    --instance-termination-action=TERMINATION_ACTION

Sostituisci quanto segue:

  • VM_NAME: il nome della nuova VM.
  • DURATION: la durata per cui vuoi che la VM venga eseguita prima di essere interrotta automaticamente. Formatta la durata come numero di giorni, ore, minuti e secondi seguiti rispettivamente da d, h, m e s. Ad esempio, specifica 30m per una durata di 30 minuti o 1d2h3m4s per una durata di 1 giorno, 2 ore, 3 minuti e 4 secondi. La durata minima è di 30 secondi (30s) e quella massima di 120 giorni (120d).
  • TERMINATION_ACTION: l'azione di terminazione per questa VM, che può essere stop (STOP) o delete (DELETE). Il fatto che questo campo sia obbligatorio o abbia un valore predefinito varia in base al modello di provisioning della VM:
    • Se si tratta di una VM spot (se la VM utilizza il flag --provisioning-model=SPOT), il flag --instance-termination-action=TERMINATION_ACTION è facoltativo. Se questo flag viene omesso, l'azione di interruzione predefinita è stop.
    • In caso contrario (valore predefinito), il --instance-termination-action=TERMINATION_ACTION flag è obbligatorio.

Per ulteriori informazioni sulle altre opzioni che puoi specificare durante la creazione di una VM, consulta Creazione e avvio di un'istanza VM.

Terraform

Per creare una VM utilizzando Terraform, utilizza la risorsa google_compute_instance.

  • Per creare una VM che viene terminata automaticamente dopo una durata specifica, devi includere l'argomento max_run_duration.
  • Per specificare l'azione di terminazione, includi l'argomento instance_termination_action. Devi includere l'argomento instance_termination_action, a meno che non stia creando una VM spot (imposta l'argomento provisioning_model su SPOT), per la quale il valore predefinito è stop (STOP).
  • Configura l'argomento on_instance_stop_action:
    • Se la VM ha SSD locali e l'azione di interruzione (argomento instance_termination_action) è stop (STOP), devi impostare l'argomento on_instance_stop_action su true (true).
    • In caso contrario, ometti l'argomento on_instance_stop_action.

Per saperne di più, consulta la documentazione di Terraform per la risorsa google_compute_instance.

REST

Per creare una VM dall'API Compute Engine, utilizza il metodo instances.insert. Devi specificare un nome, un tipo di macchina e un disco di avvio per la VM.

Per creare una VM che viene terminata automaticamente dopo una durata specifica, devi includere il campo maxRunDuration. Per specificare l'azione di terminazione, includi il campo instanceTerminationAction, facoltativo per le VM Spot.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "name": "VM_NAME",
  "disks": [
    {
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      },
      "boot": true
    }
  ]
  "scheduling":
  {
    "maxRunDuration":
    {
      "seconds": DURATION
    },
    "instanceTerminationAction": "TERMINATION_ACTION"
  },
}

Sostituisci quanto segue:

  • PROJECT_ID: il project id del progetto in cui creare la VM.
  • ZONE: la zona in cui creare la VM. La zona deve supportare anche il tipo di macchina da utilizzare per la nuova VM.
  • MACHINE_TYPE: il tipo di macchina predefinito o personalizzato per la nuova VM.
  • VM_NAME: il nome della nuova VM.
  • IMAGE_PROJECT: il progetto contenente l'immagine. Ad esempio, se specifichi family/debian-10 come immagine, specifica debian-cloud come progetto immagine.
  • IMAGE: l'immagine della nuova VM. Puoi specificare una versione specifica di un'immagine pubblica o una famiglia di immagini. Ad esempio, se specifichi family/debian-10 come immagine e debian-cloud come progetto immagine, Compute Engine crea una VM dalla versione più recente dell'immagine del sistema operativo nella famiglia di immagini Debian 10.
  • DURATION: la durata in secondi per cui vuoi che questa VM venga eseguita prima di essere interrotta automaticamente. La durata minima è di 30 secondi (30s) e quella massima di 120 giorni (120d).
  • TERMINATION_ACTION: l'azione di terminazione per questa VM, che può essere stop (STOP) o delete (DELETE). Il fatto che questo campo sia obbligatorio o abbia un valore predefinito varia in base al modello di provisioning della VM:
    • Se si tratta di una VM spot (se la VM utilizza il campo "provisioningModel": "SPOT"), il campo "instanceTerminationAction": "TERMINATION_ACTION" è facoltativo. Se questo campo viene omesso, l'azione di interruzione predefinita è stop.
    • In caso contrario (valore predefinito), il "instanceTerminationAction": "TERMINATION_ACTION" campo è obbligatorio.

Per ulteriori informazioni sulle opzioni che puoi specificare durante la creazione di una VM, consulta Creazione e avvio di un'istanza VM.

Impostare un orario

Un time rappresenta la data, l'ora e il fuso orario in cui vuoi che una VM venga terminata. Per creare una VM che viene terminata automaticamente a un determinato giorno e ora, utilizza la console Google Cloud, Google Cloud CLI o l'API Compute Engine.

Console

  1. Nella console Google Cloud, vai alla pagina Crea un'istanza.

    Vai a Crea un'istanza

  2. Nella sezione Criteri di disponibilità, espandi Impostazioni avanzate del modello di provisioning delle VM.

  3. Seleziona la casella di controllo Imposta un limite di tempo per la VM. Viene visualizzato il campo Tipo di limite di tempo.

  4. Nel campo Tipo di limite di tempo, seleziona Per data per specificare il limite di tempo come data e ora. Nel campo seguente, fai clic su Seleziona data e ora e seleziona la data, l'ora e il fuso orario per il limite di tempo.

  5. Nell'elenco Al termine della VM, seleziona cosa succede quando il tempo di esecuzione della VM raggiunge il limite di tempo specificato:

    • Per arrestare automaticamente la VM, seleziona Interrompi (impostazione predefinita).
    • Per eliminare la VM, seleziona Elimina.
  6. (Facoltativo) Specifica altre opzioni della VM. Per ulteriori informazioni, consulta Creazione e avvio di un'istanza VM.

  7. Per creare e avviare la VM, fai clic su Crea.

gcloud

Per creare una VM dall'interfaccia alla gcloud CLI, utilizza il comando gcloud compute instances create.

  • Per creare una VM che viene terminata automaticamente in un momento specifico, devi includere il flag --termination-time.
  • Per specificare l'azione di terminazione, includi il flag --instance-termination-action, che è facoltativo per le VM Spot.
  • Configura il flag --discard-local-ssds-at-termination-timestamp:
    • Se la VM ha SSD locali e imposta l'azione di interruzione (TERMINATION_ACTION) su stop (STOP), devi includere il flag --discard-local-ssds-at-termination-timestamp=true.
    • In caso contrario, ometti il flag --discard-local-ssds-at-termination-timestamp.
gcloud compute instances create VM_NAME \
    --termination-time=TIME \
    --instance-termination-action=TERMINATION_ACTION

Sostituisci quanto segue:

  • VM_NAME: il nome della nuova VM.
  • TIME: l'ora in cui vuoi che la VM venga terminata automaticamente. L'ora specificata deve essere almeno 30 secondi nel futuro e al massimo 120 giorni nel futuro. Formatta l'ora come timestamp RFC 3339:

    YYYY-MM-DDTHH:MM:SSOFFSET
    

    Sostituisci quanto segue:

    • YYYY-MM-DD: una data formattata come anno a 4 cifre, mese a 2 cifre e giorno del mese a 2 cifre separati da trattini.
    • HH:MM:SS: un'ora formattata come ora a due cifre con il formato 24 ore, minuto a due cifre e secondo a due cifre separati da due punti.
    • OFFSET: il fuso orario formattato come offset del Tempo Coordinato Universale (UTC). Ad esempio, per utilizzare il fuso orario PST (Pacific Standard Time), che è 8 ore in anticipo rispetto al fuso orario UTC, specifica -08:00. In alternativa, per non utilizzare alcun offset (UTC+0), specifica Z.
  • TERMINATION_ACTION: l'azione di terminazione per questa VM, che può essere di arresto (STOP) o di eliminazione (DELETE). Il fatto che questo campo sia obbligatorio o abbia un valore predefinito varia in base al modello di provisioning della VM:

    • Se si tratta di una VM spot (se la VM utilizza il flag --provisioning-model=SPOT), il flag --instance-termination-action=TERMINATION_ACTION è facoltativo. Se questo flag viene omesso, l'azione di interruzione predefinita è stop.
    • In caso contrario (valore predefinito), il --instance-termination-action=TERMINATION_ACTION flag è obbligatorio.

Per ulteriori informazioni sulle altre opzioni che puoi specificare durante la creazione di una VM, consulta Creazione e avvio di un'istanza VM.

REST

Per creare una VM dall'API Compute Engine, utilizza il metodo instances.insert. Devi specificare un nome, un tipo di macchina e un disco di avvio per la VM.

Per creare una VM che viene terminata automaticamente in un momento specifico, devi includere il campo terminationTime. Per specificare l'azione di terminazione, includi il campo instanceTerminationAction, facoltativo per le VM Spot.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "name": "VM_NAME",
  "disks": [
    {
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      },
      "boot": true
    }
  ]
  "scheduling":
  {
    "terminationTime": "TIME",
    "instanceTerminationAction": "TERMINATION_ACTION"
  },
}

Sostituisci quanto segue:

  • PROJECT_ID: il project id del progetto in cui creare la VM.
  • ZONE: la zona in cui creare la VM. La zona deve supportare anche il tipo di macchina da utilizzare per la nuova VM.
  • MACHINE_TYPE: il tipo di macchina predefinito o personalizzato per la nuova VM.
  • VM_NAME: il nome della nuova VM.
  • IMAGE_PROJECT: il progetto contenente l'immagine. Ad esempio, se specifichi family/debian-10 come immagine, specifica debian-cloud come progetto immagine.
  • IMAGE: l'immagine della nuova VM. Puoi specificare una versione specifica di un'immagine pubblica o una famiglia di immagini. Ad esempio, se specifichi family/debian-10 come immagine e debian-cloud come progetto immagine, Compute Engine crea una VM dalla versione più recente dell'immagine del sistema operativo nella famiglia di immagini Debian 10.
  • TIME: l'ora in cui vuoi che la VM venga terminata automaticamente. L'ora specificata deve essere almeno 30 secondi nel futuro e al massimo 120 giorni nel futuro. Formatta l'ora come timestamp RFC 3339:

    YYYY-MM-DDTHH:MM:SSOFFSET
    

    Sostituisci quanto segue:

    • YYYY-MM-DD: una data formattata come anno a 4 cifre, mese a 2 cifre e giorno del mese a 2 cifre separati da trattini.
    • HH:MM:SS: un'ora formattata come ora a due cifre con il formato 24 ore, minuto a due cifre e secondo a due cifre separati da due punti.
    • OFFSET: il fuso orario formattato come offset del Tempo Coordinato Universale (UTC). Ad esempio, per utilizzare il fuso orario PST (Pacific Standard Time), che è 8 ore in anticipo rispetto al fuso orario UTC, specifica -08:00. In alternativa, per non utilizzare alcun offset (UTC+0), specifica Z.
  • TERMINATION_ACTION: l'azione di terminazione per questa VM, che può essere di arresto (STOP) o di eliminazione (DELETE). Il fatto che questo campo sia obbligatorio o abbia un valore predefinito varia in base al modello di provisioning della VM:

    • Se si tratta di una VM spot (se la VM utilizza il campo "provisioningModel": "SPOT"), il campo "instanceTerminationAction": "TERMINATION_ACTION" è facoltativo. Se questo campo viene omesso, l'azione di interruzione predefinita è stop.
    • In caso contrario (valore predefinito), il "instanceTerminationAction": "TERMINATION_ACTION" campo è obbligatorio.

Per ulteriori informazioni sulle opzioni che puoi specificare durante la creazione di una VM, consulta Creazione e avvio di un'istanza VM.

Limitare il tempo di esecuzione di una VM esistente

Puoi limitare il tempo di esecuzione di una VM esistente aggiornandone la pianificazione. Se non sai già come configurare le impostazioni per i limiti di tempo, consulta prima le sezioni precedenti su come limitare il tempo di esecuzione di una nuova VM.

Puoi utilizzare la console Google Cloud, Google Cloud CLI o l'API Compute Engine per actualizare le proprietà relative alla pianificazione della VM, come descritto in questa sezione. Questo metodo richiede di arrestare prima la VM, poi aggiornarne le proprietà e infine riavviarla. In alternativa, se vuoi aggiornare contemporaneamente altre proprietà VM e arrestare e riavviare automaticamente una VM, consulta Aggiornare le proprietà delle istanze.

Console

  1. Nella console Google Cloud, vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Nella colonna Nome, fai clic sul nome della VM da aggiornare.

  3. Nella pagina Dettagli dell'istanza VM, completa i seguenti passaggi:

    1. Se la VM è in esecuzione, fai clic su Interrompi per arrestarla.
    2. Per modificare la VM, fai clic su Modifica.
    3. Nella pagina Modifica istanza, completa i seguenti passaggi:

      1. Nella sezione Criteri di disponibilità, modifica la casella di controllo Imposta un limite di tempo per la VM e gli eventuali campi sottostanti.

        Per ulteriori informazioni su come configurare le proprietà per i limiti di tempo, consulta la sezione su come limitare il tempo di esecuzione di una nuova VM.

      2. Per salvare le modifiche, fai clic su Salva.

    4. (Facoltativo) Se vuoi iniziare a eseguire la VM ora, fai clic su Avvia.

gcloud

Per aggiornare il limite di tempo di una VM utilizzando l'interfaccia alla gcloud CLI, completa i seguenti passaggi:

  1. Se la VM è in esecuzione, arrestala utilizzando il comando gcloud compute instances stop:

    gcloud compute instances stop VM_NAME
    

    Sostituisci VM_NAME con il nome della VM che vuoi aggiornare.

  2. Aggiorna il limite di tempo della VM utilizzando il comando gcloud compute instances set-scheduling.

    gcloud compute instances set-scheduling VM_NAME \
        --max-run-duration=DURATION \
        --termination-time=TIME \
        --instance-termination-action=TERMINATION_ACTION \
        --discard-local-ssds-at-termination-timestamp=true
    

    Configura i seguenti flag:

    • Devi omettere il flag --max-run-duration o il flag --termination-time per impostare il limite di tempo come ora o durata, rispettivamente.
    • Includi il flag --instance-termination-action per impostare l'azione di interruzione.
    • Se la VM ha SSD locali e imposta l'azione di interruzione (TERMINATION_ACTION) su stop (STOP), devi includere il flag --discard-local-ssds-at-termination-timestamp=true. In caso contrario, ometti il flag --discard-local-ssds-at-termination-timestamp=true.

    Quindi, sostituisci quanto segue:

    • VM_NAME: il nome della VM che vuoi aggiornare.
    • DURATION: la durata per cui vuoi che la VM venga eseguita prima di essere interrotta automaticamente. Formatta la durata come numero di giorni, ore, minuti e secondi seguiti rispettivamente da d, h, m e s. Ad esempio, specifica 30m per una durata di 30 minuti o 1d2h3m4s per una durata di 1 giorno, 2 ore, 3 minuti e 4 secondi. La durata minima è di 30 secondi (30s) e quella massima di 120 giorni (120d).
    • TIME: l'ora in cui vuoi che la VM venga terminata automaticamente. L'ora specificata deve essere almeno 30 secondi nel futuro e al massimo 120 giorni nel futuro. Formatta l'ora come timestamp RFC 3339:

      YYYY-MM-DDTHH:MM:SSOFFSET
      

      Sostituisci quanto segue:

      • YYYY-MM-DD: una data formattata come anno a 4 cifre, mese a 2 cifre e giorno del mese a 2 cifre separati da trattini.
      • HH:MM:SS: un'ora formattata come ora a due cifre con il formato 24 ore, minuto a due cifre e secondo a due cifre separati da due punti.
      • OFFSET: il fuso orario formattato come offset del Tempo Coordinato Universale (UTC). Ad esempio, per utilizzare il fuso orario PST (Pacific Standard Time), che è 8 ore in anticipo rispetto al fuso orario UTC, specifica -08:00. In alternativa, per non utilizzare alcun offset (UTC+0), specifica Z.
    • TERMINATION_ACTION: l'azione di terminazione per questa VM, che può essere di arresto (STOP) o di eliminazione (DELETE). Il fatto che questo campo sia obbligatorio o abbia un valore predefinito varia in base al modello di provisioning della VM:

      • Se si tratta di una VM spot (se la VM utilizza il flag --provisioning-model=SPOT), il flag --instance-termination-action=TERMINATION_ACTION è facoltativo. Se questo flag viene omesso, l'azione di interruzione predefinita è stop.
      • In caso contrario (valore predefinito), il flag --instance-termination-action=TERMINATION_ACTION è obbligatorio.
  3. Se vuoi avviare la VM, utilizza il comando gcloud compute instances start:

    gcloud compute instances start VM_NAME
    

    Sostituisci VM_NAME con il nome della VM.

REST

Per aggiornare il limite di tempo di una VM utilizzando l'API Compute Engine, completa i seguenti passaggi:

  1. Se la VM è in esecuzione, arrestala utilizzando il metodo instances.stop:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop
    

    Sostituisci quanto segue:

    • PROJECT_ID: il project id del progetto che contiene la VM.
    • ZONE: la zona che contiene la VM.
    • VM_NAME: il nome della VM che vuoi aggiornare.
  2. Aggiorna la proprietà scheduling della VM, inclusi i campi per il limite di tempo della VM, utilizzando il metodo instances.setScheduling. Includi il campo maxRunDuration o il campo terminationTime per impostare il limite di tempo rispettivamente come durata o ora:

    • Per impostare una durata, utilizza la seguente richiesta:

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling
      {
        "maxRunDuration":
        {
          "seconds": DURATION
        },
        "instanceTerminationAction": "TERMINATION_ACTION"
      }
      
    • Per impostare un orario, utilizza la seguente richiesta:

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling
      {
        "terminationTime": "TIME",
        "instanceTerminationAction": "TERMINATION_ACTION"
      }
      

    Sostituisci quanto segue:

    • PROJECT_ID: il project id del progetto in cui creare la VM.
    • ZONE: la zona in cui creare la VM. La zona deve supportare anche il tipo di macchina da utilizzare per la nuova VM.
    • MACHINE_TYPE: il tipo di macchina predefinito o personalizzato per la nuova VM.
    • VM_NAME: il nome della nuova VM.
    • IMAGE_PROJECT: il progetto contenente l'immagine. Ad esempio, se specifichi family/debian-10 come immagine, specifica debian-cloud come progetto immagine.
    • IMAGE: l'immagine della nuova VM. Puoi specificare una versione specifica di un'immagine pubblica o una famiglia di immagini. Ad esempio, se specifichi family/debian-10 come immagine e debian-cloud come progetto immagine, Compute Engine crea una VM dalla versione più recente dell'immagine del sistema operativo nella famiglia di immagini Debian 10.
    • DURATION: la durata in secondi per cui vuoi che questa VM venga eseguita prima di essere interrotta automaticamente. La durata minima è di 30 secondi (30s) e quella massima di 120 giorni (120d).
    • TIME: l'ora in cui vuoi che la VM venga terminata automaticamente. L'ora specificata deve essere almeno 30 secondi nel futuro e al massimo 120 giorni nel futuro. Formatta l'ora come timestamp RFC 3339:

      YYYY-MM-DDTHH:MM:SSOFFSET
      

      Sostituisci quanto segue:

      • YYYY-MM-DD: una data formattata come anno a 4 cifre, mese a 2 cifre e giorno del mese a 2 cifre separati da trattini.
      • HH:MM:SS: un'ora formattata come ora a due cifre con il formato 24 ore, minuto a due cifre e secondo a due cifre separati da due punti.
      • OFFSET: il fuso orario formattato come offset del Tempo Coordinato Universale (UTC). Ad esempio, per utilizzare il fuso orario PST (Pacific Standard Time), che è 8 ore in anticipo rispetto al fuso orario UTC, specifica -08:00. In alternativa, per non utilizzare alcun offset (UTC+0), specifica Z.
    • TERMINATION_ACTION: l'azione di terminazione per questa VM, che può essere di arresto (STOP) o di eliminazione (DELETE). Il fatto che questo campo sia obbligatorio o abbia un valore predefinito varia in base al modello di provisioning della VM:

      • Se si tratta di una VM spot (se la VM utilizza il campo "provisioningModel": "SPOT"), il campo "instanceTerminationAction": "TERMINATION_ACTION" è facoltativo. Se questo campo viene omesso, l'azione di interruzione predefinita è stop.
      • In caso contrario (valore predefinito), il "instanceTerminationAction": "TERMINATION_ACTION" campo è obbligatorio.
  3. Se vuoi avviare la VM, utilizza il metodo instances.start:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/start
    

    Sostituisci quanto segue:

    • PROJECT_ID: il ID progetto del progetto che contiene la VM.
    • ZONE: la zona che contiene la VM.
    • VM_NAME: il nome della VM.

Monitorare il tempo di esecuzione di una VM

Puoi monitorare il tempo di esecuzione di una VM con un limite di tempo utilizzando le seguenti opzioni:

  • Per vedere quando è pianificata la terminazione automatica di una VM in esecuzione, visualizza il timestamp di terminazione della VM:

    1. Visualizza i dettagli di una VM.
    2. Nell'output, visualizza il campo della VM per il timestamp di terminazione:
      • Se utilizzi la console Google Cloud, consulta il campo Durata massima.
      • Se utilizzi Google Cloud CLI o l'API Compute Engine, consulta il campoterminationTimestamp.
  • Per verificare se una VM è stata terminata automaticamente, visualizza le relative operazioni:

    1. Visualizza le operazioni delle VM.
    2. Nell'output, puoi identificare le operazioni VM causate da un limite di tempo cercando i seguenti tipi di operazioni:

      • compute.instances.deferredStop indica un'azione di interruzione automatica di stop
      • compute.instances.deferredDelete indica un'azione di eliminazione automatica

Passaggi successivi