Limitar el tiempo de ejecución de una VM


Este documento explica cómo limitar el tiempo de ejecución de instancias de máquinas virtuales (VM) nuevas o existentes y cómo monitorear el tiempo de ejecución de esas VM. Para grupos de instancias administrados (MIG), consulte Limitar el tiempo de ejecución de un MIG .

Al limitar el tiempo de ejecución de una VM, puede programar la VM para que finalice (detenga o elimine) automáticamente cuando alcance un límite de tiempo específico (duración o tiempo). Utilice límites de tiempo para ayudar a optimizar las cargas de trabajo temporales: al limitar automáticamente los tiempos de ejecución de las máquinas virtuales, puede ayudar a minimizar los costos y liberar cuotas.

Para saber cómo detener inmediatamente una VM, consulte Detener o reiniciar una VM . Para saber cómo eliminar inmediatamente una VM, consulte Eliminar una VM .

Antes de comenzar

  • Para obtener los permisos que necesita para limitar el tiempo de ejecución de una máquina virtual, solicite a su administrador que le otorgue el rol de IAM de Administrador de instancias informáticas (v1) ( roles/compute.instanceAdmin.v1 ) en el proyecto. Para obtener más información sobre cómo otorgar roles, consulte Administrar el acceso a proyectos, carpetas y organizaciones .

    También es posible que pueda obtener los permisos necesarios a través de roles personalizados u otros roles predefinidos .

  • Si aún no lo has hecho, configura la autenticación. La autenticación es el proceso mediante el cual se verifica su identidad para acceder a Google Cloud servicios y API. 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. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    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.

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

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

Restricciones

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

  • La acción de terminación automática debe ser detener o eliminar. No puede configurar una máquina virtual 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 límite de tiempo máximo es de 120 días.

  • La terminación automática puede tardar hasta 30 segundos más que la duración o el tiempo que especifique para comenzar a detener o eliminar la máquina virtual.

  • No puede utilizar límites de tiempo con máquinas virtuales interrumpibles heredadas . En su lugar, utilice límites de tiempo con Spot VM .

  • Los datos SSD locales de una máquina virtual no se pueden conservar cuando la máquina virtual se detiene automáticamente debido a un límite de tiempo. Para obtener más información, consulte Detener una máquina virtual con SSD local .

Limitar el tiempo de ejecución de una nueva VM

Las siguientes secciones describen cómo configurar un límite de tiempo al crear una nueva máquina virtual. Puede especificar el límite de tiempo, que es cuando desea que una VM finalice automáticamente, ya sea como una duración ( maxRunDuration ) o un tiempo ( terminationTime ).

Al decidir el tipo de límite de tiempo para una máquina virtual, tenga en cuenta que la máquina virtual podría verse interrumpida, por ejemplo, por una solicitud de un usuario o por un evento del 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 terminación de una VM ( terminationTimestamp ) es un campo de solo lectura que representa el tiempo planificado para la terminación automática y Compute Engine lo define automáticamente cada vez que una VM tiene un límite de tiempo y entra en estado RUNNING .

  • La marca de tiempo de terminación se borra automáticamente cada vez que se detiene o suspende una máquina virtual. Sin embargo, una marca de tiempo de terminación no cambia cuando restablece o reinicia la VM .

  • La marca de tiempo de terminación se redefine automáticamente cada vez que se reinicia o reanuda la máquina virtual según el tipo de límite de tiempo que establezca:

    • Si establece una duración para la VM, la marca de tiempo de terminación se vuelve a calcular agregando esa duración a la última hora de inicio de la VM.
    • Si establece una hora para la máquina virtual, la marca de tiempo de terminación se establece en esa hora. Sin embargo, el tiempo debe ser en el futuro; de lo contrario, cualquier solicitud para crear o volver a ejecutar la máquina virtual fallará hasta que actualice o elimine la hora.

Establecer una duración

Una duración representa el tiempo de ejecución total que desea para una máquina virtual. Para crear una máquina virtual que finalice automáticamente después de que se ejecute durante un período específico, use la consola de Google Cloud, la CLI de Google Cloud, Terraform o la API de Compute Engine.

Consola

  1. En la consola de Google Cloud, vaya a la página Crear una instancia .

    Ir a Crear una instancia

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

  3. Seleccione la casilla Establecer un límite de tiempo para la VM . Aparece el campo Tipo de límite de tiempo .

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

  5. En la lista Al finalizar la VM , seleccione qué sucede cuando el tiempo de ejecución de la VM alcanza el límite de tiempo especificado:

    • Para detener automáticamente la máquina virtual, seleccione Detener (predeterminado).
    • Para eliminar la VM, seleccione Eliminar .
  6. Opcional: especifique otras opciones de VM. Para obtener más información, consulte Creación e inicio de una instancia de VM .

  7. Para crear e iniciar la VM, haga clic en Crear .

nube de gcloud

Para crear una máquina virtual desde la CLI de gcloud, use el comando gcloud compute instances create .

  • Para crear una máquina virtual que finalice automáticamente después de una duración específica, debe incluir el indicador --max-run-duration .
  • Para especificar la acción de terminación, incluya la marca --instance-termination-action .
  • Configure el indicador --discard-local-ssds-at-termination-timestamp :
    • Si la máquina virtual tiene SSD locales y la acción de terminación ( TERMINATION_ACTION ) es detener ( STOP ), debe incluir la --discard-local-ssds-at-termination-timestamp=true .
    • De lo contrario, omita la marca --discard-local-ssds-at-termination-timestamp .
gcloud compute instances create VM_NAME \
    --max-run-duration=DURATION \
    --instance-termination-action=TERMINATION_ACTION

Reemplace lo siguiente:

  • VM_NAME : el nombre de la nueva VM.
  • DURATION : El tiempo que desea que se ejecute esta máquina virtual antes de finalizar automáticamente. Formatee la duración como el número de días, horas, minutos y segundos seguidos de d , h , m y s respectivamente. Por ejemplo, especifique 30m para una duración de 30 minutos o especifique 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 duración máxima es de 120 días ( 120d ).
  • TERMINATION_ACTION : la acción de terminación para esta VM, que puede ser detener ( STOP ) o eliminar ( DELETE ). Si este campo es obligatorio o tiene un valor predeterminado varía según el modelo de aprovisionamiento de la VM:
    • Si se trata de una VM Spot (si la VM usa el indicador --provisioning-model=SPOT ), el indicador --instance-termination-action= TERMINATION_ACTION es opcional. Si se omite este indicador, la acción de terminación predeterminada es detener.
    • De lo contrario (predeterminado), se requiere el indicador --instance-termination-action= TERMINATION_ACTION .

Para obtener más información sobre otras opciones que puede especificar al crear una VM, consulte Creación e inicio de una instancia de VM .

Terraformar

Para crear una VM usando Terraform, use el recurso google_compute_instance .

  • Para crear una máquina virtual que finalice automáticamente después de una duración específica, debe incluir el argumento max_run_duration .
  • Para especificar la acción de terminación, incluya el argumento instance_termination_action . Debe incluir el argumento instance_termination_action a menos que esté creando una máquina virtual puntual (establezca el argumento provisioning_model en SPOT ), que de forma predeterminada se detiene ( STOP ).
  • Configure el argumento on_instance_stop_action :
    • Si la máquina virtual tiene SSD locales y la acción de terminación (argumento instance_termination_action ) es detener ( STOP ), debe establecer el argumento on_instance_stop_action en verdadero ( true ).
    • De lo contrario, omita el argumento on_instance_stop_action .

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

DESCANSAR

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

Para crear una máquina virtual que finalice automáticamente después de una duración específica, debe incluir el campo maxRunDuration . Para especificar la acción de terminación, incluya el campo instanceTerminationAction , que es opcional para las máquinas virtuales de 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"
  },
}

Reemplace lo siguiente:

  • PROJECT_ID : la identificación del proyecto en el que se creará la VM.
  • ZONE : la zona en la que se creará la VM. La zona también debe admitir el tipo de máquina que se utilizará para la nueva VM.
  • MACHINE_TYPE : el tipo de máquina predefinido o personalizado para la nueva VM.
  • VM_NAME : el nombre de la nueva VM.
  • IMAGE_PROJECT : El proyecto que contiene la imagen . Por ejemplo, si especifica family/debian-10 como imagen, especifique debian-cloud como proyecto de imagen.
  • IMAGE : La imagen de la nueva VM. Puede especificar una versión específica de una imagen pública o una familia de imágenes . Por ejemplo, si especifica family/debian-10 como imagen y debian-cloud como proyecto de imagen, Compute Engine crea una VM a partir de la última versión de la imagen del sistema operativo en la familia de imágenes de Debian 10.
  • DURATION : La duración en segundos que desea que se ejecute esta máquina virtual antes de finalizar automáticamente. La duración mínima es de 30 segundos ( 30s ) y la duración máxima es de 120 días ( 120d ).
  • TERMINATION_ACTION : la acción de terminación para esta VM, que puede ser detener ( STOP ) o eliminar ( DELETE ). Si este campo es obligatorio o tiene un valor predeterminado varía según el modelo de aprovisionamiento de la VM:
    • Si se trata de una VM Spot (si la VM utiliza el campo "provisioningModel": "SPOT" ), el campo "instanceTerminationAction": " TERMINATION_ACTION " es opcional. Si se omite este campo, la acción de terminación predeterminada es detener.
    • De lo contrario (predeterminado), el campo "instanceTerminationAction": " TERMINATION_ACTION " es obligatorio.

Para obtener más información sobre las opciones que puede especificar al crear una VM, consulte Creación e inicio de una instancia de VM .

Establecer una hora

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

Consola

  1. En la consola de Google Cloud, vaya a la página Crear una instancia .

    Ir a Crear una instancia

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

  3. Seleccione la casilla Establecer un límite de tiempo para la VM . Aparece el campo Tipo de límite de tiempo .

  4. En el campo Tipo de límite de tiempo , seleccione Por fecha para especificar el límite de tiempo como hora y fecha. En el siguiente campo, haga clic en Seleccione fecha y hora y seleccione la fecha, hora y zona horaria para el límite de tiempo.

  5. En la lista Al finalizar la VM , seleccione qué sucede cuando el tiempo de ejecución de la VM alcanza el límite de tiempo especificado:

    • Para detener automáticamente la máquina virtual, seleccione Detener (predeterminado).
    • Para eliminar la VM, seleccione Eliminar .
  6. Opcional: especifique otras opciones de VM. Para obtener más información, consulte Creación e inicio de una instancia de VM .

  7. Para crear e iniciar la VM, haga clic en Crear .

nube de gcloud

Para crear una máquina virtual desde la CLI de gcloud, use el comando gcloud compute instances create .

  • Para crear una máquina virtual que finalice automáticamente en un momento específico, debe incluir el indicador --termination-time .
  • Para especificar la acción de terminación, incluya el indicador --instance-termination-action , que es opcional para las máquinas virtuales de spot.
  • Configure el indicador --discard-local-ssds-at-termination-timestamp :
    • Si la máquina virtual tiene SSD locales y configura la acción de terminación ( TERMINATION_ACTION ) para detener ( STOP ), debe incluir el indicador --discard-local-ssds-at-termination-timestamp=true .
    • De lo contrario, omita la marca --discard-local-ssds-at-termination-timestamp .
gcloud compute instances create VM_NAME \
    --termination-time=TIME \
    --instance-termination-action=TERMINATION_ACTION

Reemplace lo siguiente:

  • VM_NAME : el nombre de la nueva VM.
  • TIME : La hora a la que desea que esta VM finalice automáticamente. La hora que especifique debe ser al menos 30 segundos en el futuro y como máximo 120 días en el futuro. Formatee la hora como una marca de tiempo RFC 3339 :

    YYYY-MM-DDTHH:MM:SSOFFSET
    

    Reemplace lo siguiente:

    • YYYY-MM-DD : fecha con formato de año de 4 dígitos, mes de 2 dígitos y día del mes de 2 dígitos separados por guiones.
    • HH:MM:SS : hora formateada como hora de 2 dígitos con formato de 24 horas, minutos de 2 dígitos y segundos de 2 dígitos separados por dos puntos.
    • OFFSET : La zona horaria formateada como un desplazamiento de la hora universal coordinada (UTC). Por ejemplo, para utilizar la hora estándar del Pacífico (PST), que es 8 horas antes que UTC, especifique -08:00 . Como alternativa, para no utilizar ningún desplazamiento (UTC+0), especifique Z .
  • TERMINATION_ACTION : la acción de terminación para esta VM, que puede ser detener ( STOP ) o eliminar ( DELETE ). Si este campo es obligatorio o tiene un valor predeterminado varía según el modelo de aprovisionamiento de la VM:

    • Si se trata de una VM Spot (si la VM usa el indicador --provisioning-model=SPOT ), el indicador --instance-termination-action= TERMINATION_ACTION es opcional. Si se omite este indicador, la acción de terminación predeterminada es detener.
    • De lo contrario (predeterminado), se requiere el indicador --instance-termination-action= TERMINATION_ACTION .

Para obtener más información sobre otras opciones que puede especificar al crear una VM, consulte Creación e inicio de una instancia de VM .

DESCANSAR

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

Para crear una máquina virtual que finalice automáticamente en un momento específico, debe incluir el campo terminationTime . Para especificar la acción de terminación, incluya el campo instanceTerminationAction , que es opcional para las máquinas virtuales de 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"
  },
}

Reemplace lo siguiente:

  • PROJECT_ID : la identificación del proyecto en el que se creará la VM.
  • ZONE : la zona en la que se creará la VM. La zona también debe admitir el tipo de máquina que se utilizará para la nueva VM.
  • MACHINE_TYPE : el tipo de máquina predefinido o personalizado para la nueva VM.
  • VM_NAME : el nombre de la nueva VM.
  • IMAGE_PROJECT : El proyecto que contiene la imagen . Por ejemplo, si especifica family/debian-10 como imagen, especifique debian-cloud como proyecto de imagen.
  • IMAGE : La imagen de la nueva VM. Puede especificar una versión específica de una imagen pública o una familia de imágenes . Por ejemplo, si especifica family/debian-10 como imagen y debian-cloud como proyecto de imagen, Compute Engine crea una VM a partir de la última versión de la imagen del sistema operativo en la familia de imágenes de Debian 10.
  • TIME : La hora a la que desea que esta VM finalice automáticamente. La hora que especifique debe ser al menos 30 segundos en el futuro y como máximo 120 días en el futuro. Formatee la hora como una marca de tiempo RFC 3339 :

    YYYY-MM-DDTHH:MM:SSOFFSET
    

    Reemplace lo siguiente:

    • YYYY-MM-DD : fecha con formato de año de 4 dígitos, mes de 2 dígitos y día del mes de 2 dígitos separados por guiones.
    • HH:MM:SS : hora formateada como hora de 2 dígitos con formato de 24 horas, minutos de 2 dígitos y segundos de 2 dígitos separados por dos puntos.
    • OFFSET : La zona horaria formateada como un desplazamiento de la hora universal coordinada (UTC). Por ejemplo, para utilizar la hora estándar del Pacífico (PST), que es 8 horas antes que UTC, especifique -08:00 . Como alternativa, para no utilizar ningún desplazamiento (UTC+0), especifique Z .
  • TERMINATION_ACTION : la acción de terminación para esta VM, que puede ser detener ( STOP ) o eliminar ( DELETE ). Si este campo es obligatorio o tiene un valor predeterminado varía según el modelo de aprovisionamiento de la máquina virtual:

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

Para obtener más información sobre las opciones que puede especificar al crear una VM, consulte Creación e inicio de una instancia de VM .

Limitar el tiempo de ejecución de una VM existente

Puede limitar el tiempo de ejecución de una máquina virtual existente actualizando la programación de la máquina virtual. Si aún no comprende cómo configurar los límites de tiempo, revise primero las secciones anteriores sobre cómo limitar el tiempo de ejecución de una nueva máquina virtual .

Puedes usar la consola de Google Cloud, la CLI de Google Cloud 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 detenga su VM, luego actualice sus propiedades y luego reinicie. Como alternativa, si desea actualizar simultáneamente propiedades de VM adicionales y detener y reiniciar automáticamente una VM, consulte Actualizar propiedades de instancia .

Consola

  1. En la consola de Google Cloud, vaya a la página de instancias de VM .

    Ir a instancias de VM

  2. En la columna Nombre , haga clic en el nombre de la VM que desea actualizar.

  3. Desde la página de detalles de la instancia de VM , complete los siguientes pasos:

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

      1. En la sección Políticas de disponibilidad , modifique la casilla Establecer un límite de tiempo para la VM y los campos debajo de ella según lo desee.

        Para obtener más información sobre cómo configurar las propiedades para los límites de tiempo, consulte limitar el tiempo de ejecución de una nueva máquina virtual .

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

    4. Opcional: si desea comenzar a ejecutar la máquina virtual ahora, haga clic en Iniciar .

nube de gcloud

Para actualizar el límite de tiempo de una VM mediante la CLI de gcloud, completa los siguientes pasos:

  1. Si la VM se está ejecutando, deténgala usando el comando gcloud compute instances stop :

    gcloud compute instances stop VM_NAME
    

    Reemplace VM_NAME con el nombre de la VM que desea actualizar.

  2. Actualice el límite de tiempo de la máquina virtual mediante 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
    

    Configure las siguientes banderas:

    • Debe omitir el indicador --max-run-duration o el indicador --termination-time para establecer el límite de tiempo como tiempo o duración, respectivamente.
    • Incluya el indicador --instance-termination-action para establecer la acción de terminación.
    • Si la máquina virtual tiene SSD locales y configura la acción de terminación ( TERMINATION_ACTION ) para detener ( STOP ), debe incluir el indicador --discard-local-ssds-at-termination-timestamp=true . De lo contrario, omita la --discard-local-ssds-at-termination-timestamp=true .

    Luego, reemplace lo siguiente:

    • VM_NAME : el nombre de la VM que desea actualizar.
    • DURATION : El tiempo que desea que se ejecute esta máquina virtual antes de finalizar automáticamente. Formatee la duración como el número de días, horas, minutos y segundos seguidos de d , h , m y s respectivamente. Por ejemplo, especifique 30m para una duración de 30 minutos o especifique 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 duración máxima es de 120 días ( 120d ).
    • TIME : La hora a la que desea que esta VM finalice automáticamente. La hora que especifique debe ser al menos 30 segundos en el futuro y como máximo 120 días en el futuro. Formatee la hora como una marca de tiempo RFC 3339 :

      YYYY-MM-DDTHH:MM:SSOFFSET
      

      Reemplace lo siguiente:

      • YYYY-MM-DD : una fecha con formato de año de 4 dígitos, mes de 2 dígitos y día del mes de 2 dígitos separados por guiones.
      • HH:MM:SS : una hora formateada como hora de 2 dígitos usando hora de 24 horas, minutos de 2 dígitos y segundos de 2 dígitos separados por dos puntos.
      • OFFSET : la zona horaria formateada como una compensación de la hora universal coordinada (UTC). Por ejemplo, para utilizar la hora estándar del Pacífico (PST), que es 8 horas antes que UTC, especifique -08:00 . Como alternativa, para no utilizar ningún desplazamiento (UTC+0), especifique Z .
    • TERMINATION_ACTION : la acción de terminación para esta VM, que puede ser detener ( STOP ) o eliminar ( DELETE ). Si este campo es obligatorio o tiene un valor predeterminado varía según el modelo de aprovisionamiento de la VM:

      • Si se trata de una VM Spot (si la VM usa el indicador --provisioning-model=SPOT ), el indicador --instance-termination-action= TERMINATION_ACTION es opcional. Si se omite este indicador, la acción de terminación predeterminada es detener.
      • De lo contrario (predeterminado), se requiere el indicador --instance-termination-action= TERMINATION_ACTION .
  3. Si desea que la VM comience a ejecutarse, iníciela con el comando gcloud compute instances start :

    gcloud compute instances start VM_NAME
    

    Reemplace VM_NAME con el nombre de la VM.

DESCANSAR

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

  1. Si la máquina virtual se está ejecutando, deténgala usando el método instances.stop :

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

    Reemplace lo siguiente:

    • PROJECT_ID : la identificación del proyecto que contiene la VM.
    • ZONE : La zona que contiene la VM.
    • VM_NAME : el nombre de la VM que desea actualizar.
  2. Actualice la propiedad scheduling de la máquina virtual, incluidos los campos para el límite de tiempo de la máquina virtual, mediante el método instances.setScheduling . Incluya el campo maxRunDuration o el campo terminationTime para establecer el límite de tiempo como duración o tiempo, respectivamente:

    • Para establecer una duración , utilice 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 establecer una hora , utilice la siguiente solicitud:

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

    Reemplace lo siguiente:

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

      YYYY-MM-DDTHH:MM:SSOFFSET
      

      Reemplace lo siguiente:

      • YYYY-MM-DD : fecha con formato de año de 4 dígitos, mes de 2 dígitos y día del mes de 2 dígitos separados por guiones.
      • HH:MM:SS : hora formateada como hora de 2 dígitos con formato de 24 horas, minutos de 2 dígitos y segundos de 2 dígitos separados por dos puntos.
      • OFFSET : La zona horaria formateada como un desplazamiento de la hora universal coordinada (UTC). Por ejemplo, para utilizar la hora estándar del Pacífico (PST), que es 8 horas antes que UTC, especifique -08:00 . Como alternativa, para no utilizar ningún desplazamiento (UTC+0), especifique Z .
    • TERMINATION_ACTION : la acción de terminación para esta VM, que puede ser detener ( STOP ) o eliminar ( DELETE ). Si este campo es obligatorio o tiene un valor predeterminado varía según el modelo de aprovisionamiento de la VM:

      • Si se trata de una VM Spot (si la VM utiliza el campo "provisioningModel": "SPOT" ), el campo "instanceTerminationAction": " TERMINATION_ACTION " es opcional. Si se omite este campo, la acción de terminación predeterminada es detener.
      • De lo contrario (predeterminado), el campo "instanceTerminationAction": " TERMINATION_ACTION " es obligatorio.
  3. Si desea que la VM comience a ejecutarse, iníciela utilizando el método instances.start :

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

    Reemplace lo siguiente:

    • PROJECT_ID : la identificación del proyecto que contiene la VM.
    • ZONE : la zona que contiene la VM.
    • VM_NAME : el nombre de la VM.

Monitorear el tiempo de ejecución de una VM

Puede monitorear el tiempo de ejecución de una máquina virtual que tiene un límite de tiempo mediante las siguientes opciones:

  • Para ver cuándo está programada la finalización automática de una VM en ejecución, vea la marca de tiempo de terminación de la VM:

    1. Ver los detalles de una VM .
    2. En el resultado, vea el campo de la VM para la marca de tiempo de terminación:
      • Si está utilizando la consola de Google Cloud, consulte el campo Duración máxima .
      • Si está utilizando la CLI de Google Cloud o la API de Compute Engine, consulte el campo terminationTimestamp .
  • Para verificar si una VM se finalizó automáticamente, vea las operaciones de la VM:

    1. Ver operaciones de VM .
    2. En el resultado, puede identificar operaciones de VM causadas por un límite de tiempo buscando los siguientes tipos de operaciones:

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

¿Qué sigue?