Limita 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 monitorarne il tempo di esecuzione. Per i gruppi di istanze gestite, consulta Limitare il tempo di esecuzione di un gruppo di istanze gestite.

Quando limiti il tempo di esecuzione di una VM, puoi pianificarla in modo che venga terminata automaticamente (interrotta o eliminata) quando raggiunge un limite di tempo specifico (durata o tempo). Utilizza limiti di tempo per ottimizzare i carichi di lavoro temporanei. Limitando automaticamente i tempi di esecuzione delle VM, puoi ridurre al minimo i costi e liberare quote.

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

Per scoprire altre opzioni per limitare automaticamente i tempi di esecuzione delle VM, consulta le pagine seguenti:

  • Pianificazione dell'avvio e dell'arresto di una VM: le pianificazioni delle istanze consentono di avviare e arrestare automaticamente le VM. Puoi collegare una pianificazione delle istanze a più VM e ripetere automaticamente la pianificazione per carichi di lavoro ricorrenti.

  • Batch: i job batch creano ed eliminano automaticamente le VM per carichi di lavoro limitati e puoi specificare o omettere un limite per il tempo di esecuzione.

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) per il progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

    Potresti anche essere in grado di ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è il processo mediante il quale viene verificata l'identità per l'accesso ai servizi e alle API Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti in Compute Engine nel seguente modo.

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

    Console

    Quando utilizzi la console Google Cloud per accedere ai servizi e alle API di Google Cloud, non devi configurare l'autenticazione.

    gcloud

    1. Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

      gcloud init
    2. Imposta una regione e una zona predefinite.

    REST

    Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, devi utilizzare le credenziali che fornisci a gcloud CLI.

      Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

      gcloud init

Limitazioni

La limitazione del tempo di esecuzione di una VM prevede le seguenti restrizioni:

  • L'azione di terminazione automatica deve essere di interruzione o di eliminazione. Non puoi configurare una VM per la sospensione automatica al raggiungimento del limite di tempo.

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

  • La terminazione automatica può richiedere fino a 30 secondi in più rispetto alla durata o al tempo specificati per iniziare l'arresto o l'eliminazione della VM.

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

  • I dati SSD locali di una VM non possono essere conservati quando la VM viene arrestata automaticamente a causa di un limite di tempo. Per maggiori informazioni, consulta Arrestare una VM con SSD locale.

Limita il tempo di esecuzione di una nuova VM

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

Quando decidi il tipo di limite di tempo per una VM, tieni presente che questa potrebbe essere interrotta, 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 il tempo pianificato per la terminazione automatica e viene 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 ricalcolato 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 nel futuro. In caso contrario, le richieste di creazione o riesecuzione della VM non andranno a buon fine finché non aggiorni o rimuovi l'ora.

Imposta una durata

La durata rappresenta il tempo di esecuzione totale desiderato per una VM. Per creare una VM che viene terminata automaticamente dopo l'esecuzione per un periodo di tempo specifico, 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 ore (impostazione predefinita) per specificare il limite di tempo come durata. Nel campo seguente, inserisci la durata in ore.

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

    • Per arrestare automaticamente la VM, seleziona Arresta (impostazione predefinita).
    • Per eliminare la VM, seleziona Elimina.
  6. (Facoltativo) Specifica altre opzioni 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 da gcloud CLI, utilizza il comando gcloud beta 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 terminazione, includi il flag --instance-termination-action.
  • Configura il flag --discard-local-ssds-at-termination-timestamp:
    • Se la VM ha SSD locali e imposta l'azione di terminazione (TERMINATION_ACTION) su arresto (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 beta 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 dell'esecuzione della VM prima dell'arresto automatico. Formatta la durata con il 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 la durata massima è di 120 giorni (120d).
  • TERMINATION_ACTION: l'azione di terminazione per questa VM, che può essere di arresto (STOP) o eliminazione (DELETE). L'indicazione che questo campo sia obbligatorio o abbia un valore predefinito varia in base al modello di provisioning della VM:
    • Se questa è 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 terminazione predefinita è "stop".
    • In caso contrario (impostazione predefinita), il flag --instance-termination-action=TERMINATION_ACTION è obbligatorio.

Per saperne di più 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 beta. 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 un determinato periodo di tempo, devi includere il campo maxRunDuration. Per specificare l'azione di terminazione, includi il campo instanceTerminationAction, che è facoltativo per le VM spot.

POST https://compute.googleapis.com/compute/beta/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: l'ID progetto del progetto in cui creare la VM.
  • ZONE: la zona in cui creare la VM. La zona deve anche supportare il tipo di macchina da utilizzare per la nuova VM.
  • MACHINE_TYPE: il tipo di macchina predefinita o personalizzata 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 di immagine.
  • IMAGE: l'immagine per la 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 dall'ultima versione dell'immagine sistema operativo nella famiglia di immagini Debian 10.
  • DURATION: la durata in secondi in cui vuoi che questa VM venga eseguita prima dell'arresto automatico. La durata minima è di 30 secondi (30s) e la durata massima è di 120 giorni (120d).
  • TERMINATION_ACTION: l'azione di terminazione per questa VM, che può essere di arresto (STOP) o eliminazione (DELETE). L'indicazione 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 terminazione predefinita viene interrotta.
    • In caso contrario (impostazione predefinita), il campo "instanceTerminationAction": "TERMINATION_ACTION" è obbligatorio.

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

Imposta un orario

Un'ora rappresenta la data, l'ora e il fuso orario in cui vuoi terminare una VM. Per creare una VM che viene terminata automaticamente in un momento specifico, 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, quindi seleziona la data, l'ora e il fuso orario per il limite di tempo.

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

    • Per arrestare automaticamente la VM, seleziona Arresta (impostazione predefinita).
    • Per eliminare la VM, seleziona Elimina.
  6. (Facoltativo) Specifica altre opzioni 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 da gcloud CLI, utilizza il comando gcloud beta compute instances create.

  • Per creare una VM che viene terminata automaticamente a un'ora specifica, 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 terminazione (TERMINATION_ACTION) su arresto (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 beta 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 questa VM venga terminata automaticamente. L'ora specificata deve essere successiva di almeno 30 secondi e non più di 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 separate da trattini.
    • HH:MM:SS: un'ora formattata come ora a due cifre, con formato a 24 ore, minuti a due cifre e secondi a due cifre, separati da due punti.
    • OFFSET: il fuso orario formattato come differenza rispetto al fuso orario UTC (Coordinated Universal Time). Ad esempio, per utilizzare il fuso orario PST (Pacific Standard Time), che è 8 ore prima del fuso orario UTC, specifica -08:00. In alternativa, per non utilizzare offset (UTC+0), specifica Z.
  • TERMINATION_ACTION: l'azione di terminazione per questa VM, che può essere di arresto (STOP) o eliminazione (DELETE). L'indicazione che questo campo sia obbligatorio o abbia un valore predefinito varia in base al modello di provisioning della VM:

    • Se questa è 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 terminazione predefinita è "stop".
    • In caso contrario (impostazione predefinita), è obbligatorio il flag --instance-termination-action=TERMINATION_ACTION.

Per saperne di più 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 beta. Devi specificare un nome, un tipo di macchina e un disco di avvio per la VM.

Per creare una VM che viene terminata automaticamente a un'ora specifica, devi includere il campo terminationTime. Per specificare l'azione di terminazione, includi il campo instanceTerminationAction, che è facoltativo per le VM spot.

POST https://compute.googleapis.com/compute/beta/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: l'ID progetto del progetto in cui creare la VM.
  • ZONE: la zona in cui creare la VM. La zona deve anche supportare il tipo di macchina da utilizzare per la nuova VM.
  • MACHINE_TYPE: il tipo di macchina predefinita o personalizzata 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 di immagine.
  • IMAGE: l'immagine per la 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 dall'ultima versione dell'immagine sistema operativo nella famiglia di immagini Debian 10.
  • TIME: l'ora in cui vuoi che questa VM venga terminata automaticamente. L'ora specificata deve essere successiva di almeno 30 secondi e non più di 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 separate da trattini.
    • HH:MM:SS: un'ora formattata come ora a due cifre, con formato a 24 ore, minuti a due cifre e secondi a due cifre, separati da due punti.
    • OFFSET: il fuso orario formattato come differenza rispetto al fuso orario UTC (Coordinated Universal Time). Ad esempio, per utilizzare il fuso orario PST (Pacific Standard Time), che è 8 ore prima del fuso orario UTC, specifica -08:00. In alternativa, per non utilizzare offset (UTC+0), specifica Z.
  • TERMINATION_ACTION: l'azione di terminazione per questa VM, che può essere di arresto (STOP) o eliminazione (DELETE). L'obbligo o meno di questo campo 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 terminazione predefinita viene interrotta.
    • In caso contrario (impostazione predefinita), il campo "instanceTerminationAction": "TERMINATION_ACTION" è obbligatorio.

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

Limita il tempo di esecuzione di una VM esistente

Puoi limitare il tempo di esecuzione di una VM esistente aggiornando la pianificazione della VM. 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 aggiornare le proprietà relative alla pianificazione della VM, come descritto in questa sezione. Questo metodo richiede prima di arrestare la VM, quindi di aggiornarne le proprietà e di riavviarla. In alternativa, se vuoi aggiornare contemporaneamente ulteriori proprietà della VM e arrestare e riavviare automaticamente una VM, consulta Aggiornare le proprietà dell'istanza.

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 che vuoi aggiornare.

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

    1. Se la VM è in esecuzione, fai clic su Arresta 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 i campi sottostanti, come preferisci.

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

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

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

gcloud

Per aggiornare il limite di tempo di una VM utilizzando gcloud CLI, completa questi 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 beta compute instances set-scheduling.

    gcloud beta 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 --termination-time per impostare il limite di tempo rispettivamente come tempo o durata.
    • Includi il flag --instance-termination-action per impostare l'azione di terminazione.
    • Se la VM ha SSD locali e imposta l'azione di terminazione (TERMINATION_ACTION) su arresto (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.

    Poi sostituisci quanto segue:

    • VM_NAME: il nome della VM che vuoi aggiornare.
    • DURATION: la durata dell'esecuzione della VM prima dell'arresto automatico. Formatta la durata con il 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 la durata massima è di 120 giorni (120d).
    • TIME: l'ora in cui vuoi che questa VM venga terminata automaticamente. L'ora specificata deve essere successiva di almeno 30 secondi e non più di 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 separate da trattini.
      • HH:MM:SS: un'ora formattata come ora a due cifre con formato 24 ore, minuti a due cifre e secondi a due cifre, separati da due punti.
      • OFFSET: il fuso orario formato come offset rispetto al fuso orario UTC (Coordinated Universal Time). Ad esempio, per utilizzare il fuso orario PST (Pacific Standard Time), che è 8 ore prima del fuso orario UTC, specifica -08:00. In alternativa, per non utilizzare offset (UTC+0), specifica Z.
    • TERMINATION_ACTION: l'azione di terminazione per questa VM, che può essere di arresto (STOP) o eliminazione (DELETE). L'indicazione che questo campo sia obbligatorio o abbia un valore predefinito varia in base al modello di provisioning della VM:

      • Se questa è 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 terminazione predefinita è "stop".
      • In caso contrario (impostazione predefinita), è obbligatorio il flag --instance-termination-action=TERMINATION_ACTION.
  3. Se vuoi che la VM inizi a essere eseguita, avviala utilizzando 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, segui questi 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: l'ID progetto 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 beta. Includi il campo maxRunDuration o il campo terminationTime per impostare il limite di tempo rispettivamente come durata o tempo:

    • Per impostare una durata, utilizza la seguente richiesta:

      POST https://compute.googleapis.com/compute/beta/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/beta/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling
      {
        "terminationTime": "TIME",
        "instanceTerminationAction": "TERMINATION_ACTION"
      }
      

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID progetto del progetto in cui creare la VM.
    • ZONE: la zona in cui creare la VM. La zona deve anche supportare il tipo di macchina da utilizzare per la nuova VM.
    • MACHINE_TYPE: il tipo di macchina predefinita o personalizzata 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 di immagine.
    • IMAGE: l'immagine per la 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 dall'ultima versione dell'immagine sistema operativo nella famiglia di immagini Debian 10.
    • DURATION: la durata in secondi in cui vuoi che questa VM venga eseguita prima dell'arresto automatico. La durata minima è di 30 secondi (30s) e la durata massima è di 120 giorni (120d).
    • TIME: l'ora in cui vuoi che questa VM venga terminata automaticamente. L'ora specificata deve essere successiva di almeno 30 secondi e non più di 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 separate da trattini.
      • HH:MM:SS: un'ora formattata come ora a due cifre, con formato a 24 ore, minuti a due cifre e secondi a due cifre, separati da due punti.
      • OFFSET: il fuso orario formattato come differenza rispetto al fuso orario UTC (Coordinated Universal Time). Ad esempio, per utilizzare il fuso orario PST (Pacific Standard Time), che è 8 ore prima del fuso orario UTC, specifica -08:00. In alternativa, per non utilizzare offset (UTC+0), specifica Z.
    • TERMINATION_ACTION: l'azione di terminazione per questa VM, che può essere di arresto (STOP) o eliminazione (DELETE). L'indicazione 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 terminazione predefinita viene interrotta.
      • In caso contrario (impostazione predefinita), il campo "instanceTerminationAction": "TERMINATION_ACTION" è obbligatorio.
  3. Se vuoi che la VM inizi a essere eseguita, avviala utilizzando 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: l'ID progetto del progetto che contiene la VM.
    • ZONE: la zona che contiene la VM.
    • VM_NAME: il nome della VM.

Monitora 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 sapere quando è pianificata l'interruzione 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 campo terminationTimestamp.
  • Per verificare se una VM è stata terminata automaticamente, visualizza le operazioni della VM:

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

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

Passaggi successivi