Limita el entorno de ejecución de una VM


En este documento, se explica cómo limitar el tiempo de ejecución de las instancias de máquina virtual (VM) nuevas o existentes, y cómo supervisar el tiempo de ejecución de esas VMs. En el caso de los grupos de instancias administrados (MIG), consulta Limita el tiempo de ejecución de un MIG.

Cuando limitas el tiempo de ejecución de una VM, puedes programarla para que se finalice de forma automática (detenida o borre) cuando alcance un límite de tiempo específico (duración o tiempo). Usa límites de tiempo para optimizar las cargas de trabajo temporales: si limitas de forma automática los tiempos de ejecución de las VMs, puedes minimizar los costos y liberar cuotas.

Si deseas obtener más información para detener una VM de inmediato, consulta Detén o reinicia una VM. Si deseas obtener información para borrar una VM de inmediato, consulta Borra una VM.

Antes de comenzar

  • Para obtener los permisos que necesitas a fin de limitar el tiempo de ejecución de una VM, pídele a tu administrador que te otorgue rol Administrador de instancias de Compute (v1) (roles/compute.instanceAdmin.v1) de IAM en el proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

    También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.

  • Si aún no lo hiciste, configura la autenticación. La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    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

      Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.

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

        gcloud init

      Si deseas obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud.

Restricciones

Limitar el entorno de ejecución de una VM tiene las siguientes restricciones:

  • La acción de finalización automática debe ser de detención o eliminación. No puedes configurar una VM para que se suspenda automáticamente cuando se alcance el límite de tiempo.

  • El límite de tiempo mínimo es de 30 segundos y el máximo es de 120 días.

  • La finalización automática puede tardar hasta 30 segundos más tiempo que la duración o el tiempo que especificas para comenzar a detener o borrar la VM.

  • No puedes usar límites de tiempo con VMs interrumpibles heredadas. En su lugar, usa límites de tiempo con VM Spot.

  • Los datos de SSD locales de una VM no se pueden conservar cuando esta se detiene automáticamente debido a un límite de tiempo. Para obtener más información, consulta Detén una VM con SSD local.

Limita el entorno de ejecución de una VM nueva

En las siguientes secciones, se describe cómo configurar un límite de tiempo mientras se crea una VM nueva. Puedes especificar el límite de tiempo, que es el momento en el que deseas que una VM finalice automáticamente, como una duración (maxRunDuration) o una hora (terminationTime).

Cuando decidas el tipo de límite de tiempo para una VM, ten en cuenta que esta podría ser interrumpido, por ejemplo, por una solicitud del usuario o un evento de host. El comportamiento de un límite de tiempo varía según el tipo de interrupción y el tipo de límite de tiempo:

  • La marca de tiempo de finalización (terminationTimestamp) de una VM es un campo de solo lectura que representa el tiempo planificado para la finalización automática y que Compute Engine define automáticamente cada vez que una VM tiene un límite de tiempo y entra en el estado RUNNING.

  • La marca de tiempo de finalización se borra automáticamente cada vez que se detiene o suspende una VM. Sin embargo, la marca de tiempo de finalización no cambia cuando restableces o reinicias la VM.

  • La marca de tiempo de finalización se redefine automáticamente cada vez que se reinicia o se reanuda la VM según el tipo de límite de tiempo que establezcas:

    • Si estableces una duración para la VM, se vuelve a calcular la marca de tiempo de finalización agregando esa duración a la hora de inicio más reciente de la VM.
    • Si estableces un horario para la VM, la marca de tiempo de finalización se establecerá en ese horario. Sin embargo, la hora debe ser futura. De lo contrario, todas las solicitudes para crear o volver a ejecutar la VM fallarán hasta que actualices o quites la hora.

Establece una duración

Una duración representa el tiempo de ejecución total que deseas para una VM. Para crear una VM que finalice de forma automática después de que la VM se ejecute durante un período específico, usa la consola de Google Cloud, Google Cloud CLI, Terraform o la API de Compute Engine.

Console

  1. En la consola de Google Cloud, ve a la página Crea una instancia.

    Ir a Crear una instancia

  2. En la sección Políticas de disponibilidad, expande Configuración avanzada del modelo de aprovisionamiento de VM.

  3. Selecciona la casilla de verificación Configurar un límite de tiempo para la VM. Aparecerá el campo Tipo de límite de tiempo.

  4. En el campo Tipo de límite de tiempo, selecciona Por horas (predeterminado) para especificar el límite de tiempo como una duración. En el siguiente campo, ingresa la duración en horas.

  5. En la lista Cuando se finaliza la VM, selecciona lo que sucede cuando el entorno de ejecución de la VM alcanza el límite de tiempo especificado:

    • Para detener la VM de forma automática, selecciona Detener (predeterminado).
    • Para borrar la VM, selecciona Borrar.
  6. Opcional: Especifica otras opciones de VM. Para obtener más información, consulta Crea e inicia una instancia de VM.

  7. Para crear y, también, iniciar la VM, haz clic en Crear.

gcloud

Para crear una VM a partir de la CLI de gcloud, usa el gcloud compute instances create comando .

  • Para crear una VM que finalice de forma automática después de un período específico, debes incluir la marca --max-run-duration.
  • Si deseas especificar la acción de finalización, incluye la marca --instance-termination-action.
  • Configura la marca --discard-local-ssds-at-termination-timestamp:
    • Si la VM tiene SSD locales y la acción de terminación (TERMINATION_ACTION) es de detención (STOP), debes incluir la marca --discard-local-ssds-at-termination-timestamp=true.
    • De lo contrario, omite la marca --discard-local-ssds-at-termination-timestamp.
gcloud compute instances create VM_NAME \
    --max-run-duration=DURATION \
    --instance-termination-action=TERMINATION_ACTION

Reemplaza lo siguiente:

  • VM_NAME: es el nombre de la VM nueva.
  • DURATION: La duración que quieres que ejecute esta VM antes de que se finalice de forma automática. Formatea la duración en forma de la cantidad de días, horas, minutos y segundos seguidos de d, h, m y s, respectivamente. Por ejemplo, especifica 30m para una duración de 30 minutos o especifica 1d2h3m4s para una duración de 1 día, 2 horas, 3 minutos y 4 segundos. La duración mínima es de 30 segundos (30s) y la máxima es de 120 días (120d).
  • TERMINATION_ACTION: La acción de finalización de esta VM, que puede ser de detención (STOP) o eliminación (DELETE). Ya sea que este campo sea obligatorio o que tenga un valor predeterminado, varíe en el modelo de aprovisionamiento de la VM:
    • Si se trata de una VM Spot (si la VM usa la marca --provisioning-model=SPOT), la marca --instance-termination-action=TERMINATION_ACTION es opcional. Si se omite esta marca, se detiene la acción de finalización predeterminada.
    • De lo contrario, se requiere la marca --instance-termination-action=TERMINATION_ACTION (predeterminada).

Para obtener más información sobre otras opciones que puedes especificar cuando creas una VM, consulta Crea y, luego, inicia una instancia de VM.

Terraform

Para crear una VM con Terraform, usa el recurso google_compute_instance.

  • Para crear una VM que finalice de forma automática después de un período específico, debes incluir el max_run_duration argumento.
  • Si deseas especificar la acción de finalización, incluye el argumento instance_termination_action. Debes incluir el argumento instance_termination_action, a menos que estés creando una VM Spot (configura el argumento provisioning_model en SPOT), que se detiene de forma predeterminada (STOP).
  • Configura el argumento on_instance_stop_action:
    • Si la VM tiene SSD locales y la acción de finalización (argumento instance_termination_action) es de detención (STOP), debes establecer el argumento on_instance_stop_action como verdadero (true).
    • De lo contrario, omite el argumento on_instance_stop_action.

Para obtener más información, consulta la documentación de Terraform para el recurso google_compute_instance.

REST

Para crear una VM desde la API de Compute Engine, usa el método instances.insert: Debes especificar un nombre, un tipo de máquina y un disco de arranque para la VM.

Para crear una VM que finalice de forma automática después de un período específico, debes incluir el campo maxRunDuration. Si deseas especificar la acción de finalización, incluye el campo instanceTerminationAction, que es opcional para las VMs 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"
  },
}

Reemplaza lo siguiente:

  • PROJECT_ID: El ID del proyecto en el que se creará la VM.
  • ZONE: Es la zona en la que se creará la VM. La zona también debe admitir el tipo de máquina que se usará para la VM nueva.
  • MACHINE_TYPE: Es el tipo de máquina predefinido o personalizado de la VM nueva.
  • VM_NAME: es el nombre de la VM nueva.
  • IMAGE_PROJECT: es el proyecto que contiene la imagen. Por ejemplo, si especificas family/debian-10 como la imagen, especifica debian-cloud como proyecto de imagen.
  • IMAGE: La imagen de la VM nueva. Puedes definir una versión específica de una imagen pública o una familia de imágenes. Por ejemplo, si especificas family/debian-10 como la imagen y debian-cloud como el proyecto de imagen, Compute Engine crea una VM a partir de la versión más reciente de la familia de imágenes de Debian 10.
  • DURATION: La duración en segundos en la que quieras que esta VM se ejecute antes de finalizar automáticamente. La duración mínima es de 30 segundos (30s) y la máxima es de 120 días (120d).
  • TERMINATION_ACTION: La acción de finalización de esta VM, que puede ser de detención (STOP) o eliminación (DELETE). Ya sea que este campo sea obligatorio o que tenga un valor predeterminado, varíe en el modelo de aprovisionamiento de la VM:
    • Si se trata de una VM Spot (si la VM usa el campo "provisioningModel": "SPOT"), el campo "instanceTerminationAction": "TERMINATION_ACTION" es opcional. Si se omite este campo, se detiene la acción de finalización predeterminada.
    • De lo contrario, el campo "instanceTerminationAction": "TERMINATION_ACTION" es obligatorio (predeterminado).

Para obtener más información sobre las opciones que puedes especificar cuando creas una VM, consulta Crea y, luego, inicia una instancia de VM.

Establece una hora

Una hora representa la fecha, la hora y la zona horaria en las que quieres que se finalice una VM. Para crear una VM que finalice de forma automática en un momento específico, usa la consola de Google Cloud, la CLI de Google Cloud o la API de Compute Engine.

Console

  1. En la consola de Google Cloud, ve a la página Crea una instancia.

    Ir a Crear una instancia

  2. En la sección Políticas de disponibilidad, expande Configuración avanzada del modelo de aprovisionamiento de VM.

  3. Selecciona la casilla de verificación Configurar un límite de tiempo para la VM. Aparecerá el campo Tipo de límite de tiempo.

  4. En el campo Tipo de límite de tiempo, selecciona Por fecha para especificar el límite de tiempo como una hora y una fecha. En el siguiente campo, haz clic en Seleccionar fecha y hora y selecciona la fecha, hora y zona horaria para el límite de tiempo.

  5. En la lista Cuando se finaliza la VM, selecciona lo que sucede cuando el entorno de ejecución de la VM alcanza el límite de tiempo especificado:

    • Para detener la VM de forma automática, selecciona Detener (predeterminado).
    • Para borrar la VM, selecciona Borrar.
  6. Opcional: Especifica otras opciones de VM. Para obtener más información, consulta Crea e inicia una instancia de VM.

  7. Para crear y, también, iniciar la VM, haz clic en Crear.

gcloud

Para crear una VM a partir de la CLI de gcloud, usa el gcloud compute instances create comando .

  • Para crear una VM que finalice de forma automática en un momento específico, debes incluir la marca --termination-time.
  • Si deseas especificar la acción de finalización, incluye la marca --instance-termination-action, que es opcional para las VMs Spot.
  • Configura la marca --discard-local-ssds-at-termination-timestamp:
    • Si la VM tiene SSD locales y establece la acción de finalización (TERMINATION_ACTION) en detención (STOP), debes incluir la marca --discard-local-ssds-at-termination-timestamp=true.
    • De lo contrario, omite la marca --discard-local-ssds-at-termination-timestamp.
gcloud compute instances create VM_NAME \
    --termination-time=TIME \
    --instance-termination-action=TERMINATION_ACTION

Reemplaza lo siguiente:

  • VM_NAME: es el nombre de la VM nueva.
  • TIME: Es la hora en la que deseas que se finalice esta VM de forma automática. El tiempo que especifiques debe ser al menos 30 segundos en el futuro y 120 días como máximo. Dale formato a la hora como una marca de tiempo RFC 3339:

    YYYY-MM-DDTHH:MM:SSOFFSET
    

    Reemplaza lo siguiente:

    • YYYY-MM-DD: una fecha con formato de un año de 4 dígitos, un mes de 2 dígitos y un día de 2 dígitos, separado del mes por guiones.
    • HH:MM:SS: una hora con formato de hora de 2 dígitos con el formato de 24 horas, minutos de 2 dígitos y segundos de 2 dígitos separados por dos puntos
    • OFFSET: la zona horaria con formato como una compensación del horario universal coordinado (UTC). Por ejemplo, para usar la hora estándar del Pacífico (PST), que es 8 horas antes del UTC, especifica -08:00. Como alternativa, para no usar compensación (UTC+0), especifica Z.
  • TERMINATION_ACTION: La acción de finalización de esta VM, que puede ser de detención (STOP) o eliminación (DELETE). Ya sea que este campo sea obligatorio o que tenga un valor predeterminado, varíe en el modelo de aprovisionamiento de la VM:

    • Si se trata de una VM Spot (si la VM usa la marca --provisioning-model=SPOT), la marca --instance-termination-action=TERMINATION_ACTION es opcional. Si se omite esta marca, se detiene la acción de finalización predeterminada.
    • De lo contrario, se requiere la marca --instance-termination-action=TERMINATION_ACTION (predeterminada).

Para obtener más información sobre otras opciones que puedes especificar cuando creas una VM, consulta Crea y, luego, inicia una instancia de VM.

REST

Para crear una VM desde la API de Compute Engine, usa el método instances.insert: Debes especificar un nombre, un tipo de máquina y un disco de arranque para la VM.

Para crear una VM que finalice de forma automática en un momento específico, debes incluir el campo terminationTime. Si deseas especificar la acción de finalización, incluye el campo instanceTerminationAction, que es opcional para las VMs 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"
  },
}

Reemplaza lo siguiente:

  • PROJECT_ID: El ID del proyecto en el que se creará la VM.
  • ZONE: Es la zona en la que se creará la VM. La zona también debe admitir el tipo de máquina que se usará para la VM nueva.
  • MACHINE_TYPE: Es el tipo de máquina predefinido o personalizado de la VM nueva.
  • VM_NAME: es el nombre de la VM nueva.
  • IMAGE_PROJECT: es el proyecto que contiene la imagen. Por ejemplo, si especificas family/debian-10 como la imagen, especifica debian-cloud como proyecto de imagen.
  • IMAGE: La imagen de la VM nueva. Puedes definir una versión específica de una imagen pública o una familia de imágenes. Por ejemplo, si especificas family/debian-10 como la imagen y debian-cloud como el proyecto de imagen, Compute Engine crea una VM a partir de la versión más reciente de la familia de imágenes de Debian 10.
  • TIME: Es la hora en la que deseas que se finalice esta VM de forma automática. El tiempo que especifiques debe ser al menos 30 segundos en el futuro y 120 días como máximo. Dale formato a la hora como una marca de tiempo RFC 3339:

    YYYY-MM-DDTHH:MM:SSOFFSET
    

    Reemplaza lo siguiente:

    • YYYY-MM-DD: una fecha con formato de un año de 4 dígitos, un mes de 2 dígitos y un día de 2 dígitos, separado del mes por guiones.
    • HH:MM:SS: una hora con formato de hora de 2 dígitos con el formato de 24 horas, minutos de 2 dígitos y segundos de 2 dígitos separados por dos puntos
    • OFFSET: la zona horaria con formato como una compensación del horario universal coordinado (UTC). Por ejemplo, para usar la hora estándar del Pacífico (PST), que es 8 horas antes del UTC, especifica -08:00. Como alternativa, para no usar compensación (UTC+0), especifica Z.
  • TERMINATION_ACTION: La acción de finalización de esta VM, que puede ser de detención (STOP) o eliminación (DELETE). Ya sea que este campo sea obligatorio o que tenga un valor predeterminado, varíe en el modelo de aprovisionamiento de la VM:

    • Si se trata de una VM Spot (si la VM usa el campo "provisioningModel": "SPOT"), el campo "instanceTerminationAction": "TERMINATION_ACTION" es opcional. Si se omite este campo, se detiene la acción de finalización predeterminada.
    • De lo contrario, el campo "instanceTerminationAction": "TERMINATION_ACTION" es obligatorio (predeterminado).

Para obtener más información sobre las opciones que puedes especificar cuando creas una VM, consulta Crea y, luego, inicia una instancia de VM.

Limita el entorno de ejecución de una VM existente

Para limitar el entorno de ejecución de una VM existente, actualiza el programa de la VM. Si aún no comprendes cómo definir la configuración para los límites de tiempo, revisa las secciones anteriores sobre cómo limitar el tiempo de ejecución de una VM nueva primero.

Puedes usar la consola de Google Cloud, Google Cloud CLI o la API de Compute Engine para actualizar las propiedades relacionadas con la programación de la VM, como se describe en esta sección. Este método requiere que primero detengas la VM, luego actualices sus propiedades y, luego, la reinicies. Como alternativa, si quieres actualizar las propiedades de VMs adicionales de forma simultánea, y detener y reiniciar una VM de forma automática, consulta Actualiza las propiedades de la instancia.

Console

  1. En la consola de Google Cloud, ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. En la columna Nombre, haz clic en el nombre de la VM que quieras actualizar.

  3. En la página de detalles de la instancia de VM, completa los siguientes pasos:

    1. Si la VM se está ejecutando, haz clic en Detener para detenerla.
    2. Para editar la VM, haz clic en Editar.
    3. En la página Editar instancia, completa los siguientes pasos:

      1. En la sección Políticas de disponibilidad, modifica la casilla de verificación Establece un límite de tiempo para la VM y cualquier campo debajo de él como quieras.

        Para obtener más información sobre cómo configurar las propiedades de los límites de tiempo, consulta Limita el tiempo de ejecución de una VM nueva.

      2. Para guardar los cambios, haz clic en Guardar.

    4. Si quieres comenzar a ejecutar la VM ahora, haz clic en Iniciar (opcional).

gcloud

Para actualizar el límite de tiempo de una VM con gcloud CLI, completa estos pasos:

  1. Si la VM está en ejecución, detén la VM con el comando gcloud compute instances stop:

    gcloud compute instances stop VM_NAME
    

    Reemplaza VM_NAME por el nombre de la VM que quieras actualizar.

  2. Actualiza el límite de tiempo de la VM con el 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 las siguientes marcas:

    • Debes omitir la marca --max-run-duration o la marca --termination-time para establecer el límite de tiempo como una hora o una duración, respectivamente.
    • Incluye la marca --instance-termination-action para establecer la acción de finalización.
    • Si la VM tiene SSD locales y establece la acción de finalización (TERMINATION_ACTION) en detención (STOP), debes incluir la marca --discard-local-ssds-at-termination-timestamp=true. De lo contrario, omite la marca --discard-local-ssds-at-termination-timestamp=true.

    Luego, reemplaza lo siguiente:

    • VM_NAME: Es el nombre de la VM que deseas cambiar.
    • DURATION: La duración que quieres que ejecute esta VM antes de que se finalice de forma automática. Formatea la duración en forma de la cantidad de días, horas, minutos y segundos seguidos de d, h, m y s, respectivamente. Por ejemplo, especifica 30m para una duración de 30 minutos o especifica 1d2h3m4s para una duración de 1 día, 2 horas, 3 minutos y 4 segundos. La duración mínima es de 30 segundos (30s) y la máxima es de 120 días (120d).
    • TIME: Es la hora en la que deseas que se finalice esta VM de forma automática. El tiempo que especifiques debe ser al menos 30 segundos en el futuro y 120 días como máximo. Dale formato a la hora como una marca de tiempo RFC 3339:

      YYYY-MM-DDTHH:MM:SSOFFSET
      

      Reemplaza lo siguiente:

      • YYYY-MM-DD: una fecha con formato de un año de 4 dígitos, un mes de 2 dígitos y un día de 2 dígitos, separado del mes por guiones
      • HH:MM:SS: una hora con formato de hora de 2 dígitos con el formato de 24 horas, minutos de 2 dígitos y segundos de 2 dígitos separados por dos puntos
      • OFFSET: la zona horaria con formato como una compensación del horario universal coordinado (UTC). Por ejemplo, para usar la hora estándar del Pacífico (PST), que es 8 horas antes del UTC, especifica -08:00. Como alternativa, para no usar compensación (UTC+0), especifica Z.
    • TERMINATION_ACTION: La acción de finalización de esta VM, que puede ser de detención (STOP) o eliminación (DELETE). Ya sea que este campo sea obligatorio o que tenga un valor predeterminado, varíe en el modelo de aprovisionamiento de la VM:

      • Si se trata de una VM Spot (si la VM usa la marca --provisioning-model=SPOT), la marca --instance-termination-action=TERMINATION_ACTION es opcional. Si se omite esta marca, se detiene la acción de finalización predeterminada.
      • De lo contrario, se requiere la marca --instance-termination-action=TERMINATION_ACTION.
  3. Si quieres que la VM comience a ejecutarse, iníciala con el comando gcloud compute instances start:

    gcloud compute instances start VM_NAME
    

    Reemplaza VM_NAME por el nombre de la VM.

REST

Para actualizar el límite de tiempo de una VM con la API de Compute Engine, completa los siguientes pasos:

  1. Si la VM está en ejecución, detén la VM con el método instances.stop:

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

    Reemplaza lo siguiente:

    • PROJECT_ID: El ID del proyecto que contiene la instantánea.
    • ZONE: La zona que contiene la VM.
    • VM_NAME: Es el nombre de la VM que deseas cambiar.
  2. Actualiza la propiedad scheduling de la VM, incluidos los campos para el límite de tiempo de la VM, a través del método instances.setScheduling. Incluye el campo maxRunDuration o el campo terminationTime para establecer el límite de tiempo, ya sea una duración o una hora, respectivamente:

    • Para establecer una duración, usa la siguiente solicitud:

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling
      {
        "maxRunDuration":
        {
          "seconds": DURATION
        },
        "instanceTerminationAction": "TERMINATION_ACTION"
      }
      
    • Para configurar una hora, usa la siguiente solicitud:

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

    Reemplaza lo siguiente:

    • PROJECT_ID: El ID del proyecto en el que se creará la VM.
    • ZONE: Es la zona en la que se creará la VM. La zona también debe admitir el tipo de máquina que se usará para la VM nueva.
    • MACHINE_TYPE: Es el tipo de máquina predefinido o personalizado de la VM nueva.
    • VM_NAME: es el nombre de la VM nueva.
    • IMAGE_PROJECT: es el proyecto que contiene la imagen. Por ejemplo, si especificas family/debian-10 como la imagen, especifica debian-cloud como proyecto de imagen.
    • IMAGE: La imagen de la VM nueva. Puedes definir una versión específica de una imagen pública o una familia de imágenes. Por ejemplo, si especificas family/debian-10 como la imagen y debian-cloud como el proyecto de imagen, Compute Engine crea una VM a partir de la versión más reciente de la familia de imágenes de Debian 10.
    • DURATION: La duración en segundos en la que quieras que esta VM se ejecute antes de finalizar automáticamente. La duración mínima es de 30 segundos (30s) y la máxima es de 120 días (120d).
    • TIME: Es la hora en la que deseas que se finalice esta VM de forma automática. El tiempo que especifiques debe ser al menos 30 segundos en el futuro y 120 días como máximo. Dale formato a la hora como una marca de tiempo RFC 3339:

      YYYY-MM-DDTHH:MM:SSOFFSET
      

      Reemplaza lo siguiente:

      • YYYY-MM-DD: una fecha con formato de un año de 4 dígitos, un mes de 2 dígitos y un día de 2 dígitos, separado del mes por guiones.
      • HH:MM:SS: una hora con formato de hora de 2 dígitos con el formato de 24 horas, minutos de 2 dígitos y segundos de 2 dígitos separados por dos puntos
      • OFFSET: la zona horaria con formato como una compensación del horario universal coordinado (UTC). Por ejemplo, para usar la hora estándar del Pacífico (PST), que es 8 horas antes del UTC, especifica -08:00. Como alternativa, para no usar compensación (UTC+0), especifica Z.
    • TERMINATION_ACTION: La acción de finalización de esta VM, que puede ser de detención (STOP) o eliminación (DELETE). Ya sea que este campo sea obligatorio o que tenga un valor predeterminado, varíe en el modelo de aprovisionamiento de la VM:

      • Si se trata de una VM Spot (si la VM usa el campo "provisioningModel": "SPOT"), el campo "instanceTerminationAction": "TERMINATION_ACTION" es opcional. Si se omite este campo, se detiene la acción de finalización predeterminada.
      • De lo contrario, el campo "instanceTerminationAction": "TERMINATION_ACTION" es obligatorio (predeterminado).
  3. Si deseas que la VM comience a ejecutarse, iníciala con el método instances.start:

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

    Reemplaza lo siguiente:

    • PROJECT_ID: El ID del proyecto que contiene la instantánea.
    • ZONE: La zona que contiene la VM.
    • VM_NAME: El nombre de la VM.

Supervisa el entorno de ejecución de una VM

Puedes supervisar el tiempo de ejecución de una VM que tiene un límite de tiempo con las siguientes opciones:

  • Para ver cuándo una VM en ejecución está programada para finalizarse de forma automática, consulta la marca de tiempo de finalización de la VM:

    1. Consulta los detalles de una VM.
    2. En el resultado, consulta el campo de la VM para la marca de tiempo de finalización:
      • Si usas la consola de Google Cloud, consulta el campo Duración máxima.
      • Si usas Google Cloud CLI o la API de Compute Engine, consulta el campo terminationTimestamp.
  • Para verificar si una VM se finalizó automáticamente, consulta sus operaciones:

    1. Ver operaciones de VM.
    2. En el resultado, puedes identificar las operaciones de VM que causan un límite de tiempo si buscas los siguientes tipos de operaciones:

      • compute.instances.deferredStop indica una acción de finalización automática de detención
      • compute.instances.deferredDelete indica una acción de finalización automática de eliminación

¿Qué sigue?