En este documento se explica cómo limitar el tiempo de ejecución de las instancias de máquinas virtuales (VM) nuevas o actuales y cómo monitorizar el tiempo de ejecución de esas VMs. En el caso de los grupos de instancias gestionados (MIGs), consulta Limitar el tiempo de ejecución de un MIG.
Cuando limitas el tiempo de ejecución de una VM, puedes programarla para que se cierre automáticamente (se detenga o se elimine) cuando alcance un límite de tiempo específico (duración u hora). Usa límites de tiempo para optimizar las cargas de trabajo temporales. Al limitar automáticamente los tiempos de ejecución de las máquinas virtuales, puedes minimizar los costes y liberar cuotas.
Para saber cómo detener una VM inmediatamente, consulta Detener o reiniciar una VM. Para saber cómo eliminar una VM inmediatamente, consulta Eliminar una VM.
Antes de empezar
-
Para obtener los permisos que necesitas para limitar el tiempo de ejecución de una VM, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Administrador de instancias de Compute (v. 1) (
roles/compute.instanceAdmin.v1
) en el proyecto. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.También puedes conseguir 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 verifica tu identidad para acceder a Google Cloud servicios y APIs. Para ejecutar código o ejemplos 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
-
Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:
gcloud init
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
- Set a default region and zone.
REST
Para usar las muestras de la API REST de esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la CLI de gcloud.
Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:
gcloud init
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
Para obtener más información, consulta el artículo Autenticarse para usar REST de la documentación sobre autenticación de Google Cloud .
Restricciones
Limitar el tiempo de ejecución de una VM tiene las siguientes restricciones:
La acción de finalización automática debe ser detener o eliminar. 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 que la duración o la hora que especifiques para empezar a detener o eliminar la VM.
No puedes usar límites de tiempo con las máquinas virtuales interrumpibles antiguas. En su lugar, usa límites de tiempo con máquinas virtuales de Spot.
Los datos de un SSD local de una VM no se pueden conservar cuando la VM se detiene automáticamente debido a un límite de tiempo. Para obtener más información, consulta Detener una VM con SSD local.
Limitar el tiempo de ejecución de una nueva VM
En las siguientes secciones se describe cómo configurar un límite de tiempo al crear una VM. Puedes especificar el límite de tiempo, es decir, el momento en el que quieres que se termine automáticamente una VM, como duración (
maxRunDuration
) o hora (terminationTime
).Cuando decidas el tipo de límite de tiempo de una VM, ten en cuenta que la VM puede interrumpirse, por ejemplo, por una solicitud de usuario o por un evento de host. El comportamiento de un límite de tiempo varía en función del tipo de interrupción y del 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 la hora programada para la finalización automática y se define automáticamente por Compute Engine cada vez que una VM tiene un límite de tiempo y entra en el estadoRUNNING
.La marca de tiempo de finalización se borra automáticamente cada vez que se detiene o suspende una máquina virtual. 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 en función del tipo de límite de tiempo que hayas definido:
- Si defines una duración para la VM, la marca de tiempo de finalización se vuelve a calcular añadiendo esa duración a la hora de inicio más reciente de la VM.
- Si defines una hora para la VM, la marca de tiempo de finalización se establecerá en esa hora. Sin embargo, la hora debe ser posterior a la actual. De lo contrario, no se podrán crear ni volver a ejecutar máquinas virtuales hasta que actualices o elimines la hora.
Configurar una duración
Una duración representa el tiempo total de ejecución que quieres que tenga una VM. Para crear una VM que se termine automáticamente después de que se ejecute durante un periodo específico, usa la consola, la CLI de Google Cloud, Terraform o la API de Compute Engine. Google Cloud
Consola
En la Google Cloud consola, ve a la página Crear una instancia.
En la sección Políticas de disponibilidad, despliega Configuración avanzada del modelo de aprovisionamiento de VMs.
Selecciona la casilla Definir un límite de tiempo para la VM. Aparecerá el campo Tipo de límite de tiempo.
En el campo Tipo de límite de tiempo, selecciona Por horas (opción predeterminada) para especificar el límite de tiempo como duración. En el siguiente campo, introduce la duración en horas.
En la lista Al finalizar la VM, selecciona lo que ocurre cuando el tiempo de ejecución de la VM alcanza el límite especificado:
- Para detener la máquina virtual automáticamente, selecciona Detener (opción predeterminada).
- Para eliminar la máquina virtual, selecciona Eliminar.
Opcional: Especifica otras opciones de la VM. Para obtener más información, consulta Crear e iniciar una instancia de máquina virtual.
Para crear e iniciar la VM, haz clic en Crear.
gcloud
Para crear una VM desde la CLI de gcloud, usa el comando
gcloud compute instances create
.- Para crear una VM que se termine automáticamente después de un periodo específico, debes incluir la marca
--max-run-duration
. - Para 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 unidades SSD locales y la acción de finalización (
TERMINATION_ACTION
) es detener (STOP
), debes incluir la marca--discard-local-ssds-at-termination-timestamp=true
. - De lo contrario, omite la marca
--discard-local-ssds-at-termination-timestamp
.
- Si la VM tiene unidades SSD locales y la acción de finalización (
gcloud compute instances create VM_NAME \ --max-run-duration=DURATION \ --instance-termination-action=TERMINATION_ACTION
Haz los cambios siguientes:
VM_NAME
: el nombre de la nueva VM.DURATION
: la duración que quieres que se ejecute esta VM antes de que se termine automáticamente. Formatea la duración como el número de días, horas, minutos y segundos seguido ded
,h
,m
ys
respectivamente. Por ejemplo, especifica30m
para una duración de 30 minutos o1d2h3m4s
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 detener (STOP
) o eliminar (DELETE
). Si este campo es obligatorio o tiene un valor predeterminado, varía en función del modelo de aprovisionamiento de la VM:- Si se trata de una VM de Spot (si la VM usa la marca
--provisioning-model=SPOT
), la marca--instance-termination-action=TERMINATION_ACTION
es opcional. Si se omite esta marca, la acción de finalización predeterminada es detener. - De lo contrario (valor predeterminado), se requiere la marca
--instance-termination-action=TERMINATION_ACTION
.
- Si se trata de una VM de Spot (si la VM usa la marca
Para obtener más información sobre otras opciones que puedes especificar al crear una VM, consulta Crear e iniciar una instancia de VM.
Terraform
Para crear una VM con Terraform, usa el recurso
google_compute_instance
.- Para crear una VM que se termine automáticamente después de un periodo específico, debes incluir el argumento
max_run_duration
. - Para especificar la acción de finalización, incluye el argumento
instance_termination_action
. Debes incluir el argumentoinstance_termination_action
a menos que vayas a crear una máquina virtual de acceso puntual (en cuyo caso, debes asignar el valorSPOT
al argumentoprovisioning_model
), que tiene el valor predeterminado de detener (STOP
). - Configura el argumento
on_instance_stop_action
:- Si la VM tiene alguna unidad SSD local y la acción de finalización (argumento
instance_termination_action
) es detener (STOP
), debes definir el argumentoon_instance_stop_action
como true (true
). - De lo contrario, omite el argumento
on_instance_stop_action
.
- Si la VM tiene alguna unidad SSD local y la acción de finalización (argumento
Para obtener más información, consulta la documentación de Terraform sobre el recurso
google_compute_instance
.REST
Para crear una VM a partir de 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 se termine automáticamente después de un periodo específico, debes incluir el campo
maxRunDuration
. Para especificar la acción de finalización, incluya el campoinstanceTerminationAction
, que es opcional para las VMs 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" }, }Haz los cambios siguientes:
PROJECT_ID
: el ID de proyecto 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 va a usar en la nueva VM.MACHINE_TYPE
: el tipo de máquina predefinido o personalizado de la nueva VM.VM_NAME
: el nombre de la nueva VM.IMAGE_PROJECT
: el proyecto que contiene la imagen. Por ejemplo, si especificafamily/debian-10
como imagen, especifiquedebian-cloud
como proyecto de imagen.IMAGE
: la imagen de la nueva VM. Puedes especificar una versión concreta de una imagen pública o una familia de imágenes. Por ejemplo, si especificasfamily/debian-10
como imagen ydebian-cloud
como proyecto de imagen, Compute Engine creará una VM a partir de la versión más reciente de la imagen del SO de la familia de imágenes de Debian 10.DURATION
: la duración en segundos que quieres que se ejecute esta VM antes de que se termine 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 detener (STOP
) o eliminar (DELETE
). Si este campo es obligatorio o tiene un valor predeterminado, varía en función del modelo de aprovisionamiento de la VM:- Si se trata de una VM de Spot (si la VM usa el campo
"provisioningModel": "SPOT"
), el campo"instanceTerminationAction": "TERMINATION_ACTION"
es opcional. Si se omite este campo, la acción de finalización predeterminada es detener. - De lo contrario (valor predeterminado), el campo
"instanceTerminationAction": "TERMINATION_ACTION"
es obligatorio.
- Si se trata de una VM de Spot (si la VM usa el campo
Para obtener más información sobre las opciones que puedes especificar al crear una VM, consulta Crear e iniciar una instancia de VM.
Define una hora
Una hora representa la fecha, la hora y la zona horaria en las que quieres que se termine una VM. Para crear una máquina virtual que se termine automáticamente a una hora específica, usa la consola, la CLI de Google Cloud o la API de Compute Engine. Google Cloud
Consola
En la Google Cloud consola, ve a la página Crear una instancia.
En la sección Políticas de disponibilidad, despliega Configuración avanzada del modelo de aprovisionamiento de VMs.
Selecciona la casilla Definir un límite de tiempo para la VM. Aparecerá el campo Tipo de límite de tiempo.
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 campo siguiente, haz clic en
Seleccionar fecha y hora y selecciona la fecha, la hora y la zona horaria del límite de tiempo.En la lista Al finalizar la VM, selecciona lo que ocurre cuando el tiempo de ejecución de la VM alcanza el límite especificado:
- Para detener la máquina virtual automáticamente, selecciona Detener (opción predeterminada).
- Para eliminar la máquina virtual, selecciona Eliminar.
Opcional: Especifica otras opciones de la VM. Para obtener más información, consulta Crear e iniciar una instancia de máquina virtual.
Para crear e iniciar la VM, haz clic en Crear.
gcloud
Para crear una VM desde la CLI de gcloud, usa el comando
gcloud compute instances create
.- Para crear una máquina virtual que se cierre automáticamente a una hora específica, debes incluir la marca
--termination-time
. - Para 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 alguna unidad SSD local y establece la acción de finalización (
TERMINATION_ACTION
) en detener (STOP
), debes incluir la marca--discard-local-ssds-at-termination-timestamp=true
. - De lo contrario, omite la marca
--discard-local-ssds-at-termination-timestamp
.
- Si la VM tiene alguna unidad SSD local y establece la acción de finalización (
gcloud compute instances create VM_NAME \ --termination-time=TIME \ --instance-termination-action=TERMINATION_ACTION
Haz los cambios siguientes:
VM_NAME
: el nombre de la nueva VM.TIME
: la hora a la que quieres que esta VM se termine automáticamente. La hora que especifiques debe ser al menos 30 segundos posterior a la hora actual y, como máximo, 120 días posterior a la hora actual. Formatea la hora como una marca de tiempo RFC 3339:YYYY-MM-DDTHH:MM:SSOFFSET
Haz los cambios siguientes:
YYYY-MM-DD
: una fecha con el 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 con el formato de hora de 24 horas (dos dígitos), minutos (dos dígitos) y segundos (dos dígitos) separados por dos puntos.OFFSET
: zona horaria con el formato de una diferencia con respecto al tiempo universal coordinado (UTC). Por ejemplo, para usar la hora estándar del Pacífico (PST), que es 8 horas menos que UTC, especifica-08:00
. También puedes especificarZ
para no usar ningún desfase (UTC+0).
TERMINATION_ACTION
: la acción de finalización de esta VM, que puede ser detener (STOP
) o eliminar (DELETE
). Si este campo es obligatorio o tiene un valor predeterminado, varía en función del modelo de aprovisionamiento de la VM:- Si se trata de una VM de Spot (si la VM usa la marca
--provisioning-model=SPOT
), la marca--instance-termination-action=TERMINATION_ACTION
es opcional. Si se omite esta marca, la acción de finalización predeterminada es detener. - De lo contrario (valor predeterminado), se requiere la marca
--instance-termination-action=TERMINATION_ACTION
.
- Si se trata de una VM de Spot (si la VM usa la marca
Para obtener más información sobre otras opciones que puedes especificar al crear una VM, consulta Crear e iniciar una instancia de VM.
REST
Para crear una VM a partir de 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 máquina virtual que se termine automáticamente a una hora específica, debes incluir el campo
terminationTime
. Para especificar la acción de finalización, incluya el campoinstanceTerminationAction
, que es opcional para las VMs 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" }, }Haz los cambios siguientes:
PROJECT_ID
: el ID de proyecto 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 va a usar en la nueva VM.MACHINE_TYPE
: el tipo de máquina predefinido o personalizado de la nueva VM.VM_NAME
: el nombre de la nueva VM.IMAGE_PROJECT
: el proyecto que contiene la imagen. Por ejemplo, si especificafamily/debian-10
como imagen, especifiquedebian-cloud
como proyecto de imagen.IMAGE
: la imagen de la nueva VM. Puedes especificar una versión concreta de una imagen pública o una familia de imágenes. Por ejemplo, si especificasfamily/debian-10
como imagen ydebian-cloud
como proyecto de imagen, Compute Engine creará una VM a partir de la versión más reciente de la imagen del SO de la familia de imágenes de Debian 10.TIME
: la hora a la que quieres que esta VM se termine automáticamente. La hora que especifiques debe ser al menos 30 segundos posterior a la hora actual y, como máximo, 120 días posterior a la hora actual. Formatea la hora como una marca de tiempo RFC 3339:YYYY-MM-DDTHH:MM:SSOFFSET
Haz los cambios siguientes:
YYYY-MM-DD
: una fecha con el 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 con el formato de hora de 24 horas (dos dígitos), minutos (dos dígitos) y segundos (dos dígitos) separados por dos puntos.OFFSET
: zona horaria con el formato de una diferencia con respecto al tiempo universal coordinado (UTC). Por ejemplo, para usar la hora estándar del Pacífico (PST), que es 8 horas menos que UTC, especifica-08:00
. También puedes especificarZ
para no usar ningún desfase (UTC+0).
TERMINATION_ACTION
: acción de finalización de esta VM, que puede ser detener (STOP
) o eliminar (DELETE
). Si este campo es obligatorio o tiene un valor predeterminado, varía en función del modelo de aprovisionamiento de la VM:- Si se trata de una VM de Spot (si la VM usa el campo
"provisioningModel": "SPOT"
), el campo"instanceTerminationAction": "TERMINATION_ACTION"
es opcional. Si se omite este campo, la acción de finalización predeterminada es detener. - De lo contrario (valor predeterminado), el campo
"instanceTerminationAction": "TERMINATION_ACTION"
es obligatorio.
- Si se trata de una VM de Spot (si la VM usa el campo
Para obtener más información sobre las opciones que puedes especificar al crear una VM, consulta Crear e iniciar una instancia de VM.
Limitar el tiempo de ejecución de una VM
Puedes limitar el tiempo de ejecución de una VM actualizando su programación. Si aún no sabes cómo configurar los ajustes de los límites de tiempo, consulta las secciones anteriores sobre cómo limitar el tiempo de ejecución de una VM nueva.
Puedes usar la Google Cloud consola, la CLI de Google Cloud o la API de Compute Engine para actualizar las propiedades relacionadas con la programación de la VM, tal como se describe en esta sección. Para usar este método, primero debes detener la VM, actualizar sus propiedades y, a continuación, reiniciarla. Si quiere actualizar simultáneamente otras propiedades de la VM y detenerla y reiniciarla automáticamente, consulte Actualizar propiedades de instancias.
Consola
En la consola de Google Cloud , ve a la página Instancias de VM.
En la columna Nombre, haz clic en el nombre de la máquina virtual que quieras actualizar.
En la página Detalles de la instancia de VM, sigue estos pasos:
- Si la VM está en ejecución, haz clic en Detener para detenerla.
- Para editar la VM, haz clic en Editar.
En la página Editar instancia, sigue estos pasos:
En la sección Políticas de disponibilidad, marca la casilla Establecer un límite de tiempo para la VM y modifica los campos que aparecen debajo según sea necesario.
Para obtener más información sobre cómo configurar las propiedades de los límites de tiempo, consulta Limitar el tiempo de ejecución de una máquina virtual nueva.
Para guardar los cambios, haz clic en Guardar.
Opcional: Si quieres empezar a ejecutar la VM ahora, haz clic en Iniciar.
gcloud
Para actualizar el límite de tiempo de una VM mediante la CLI de gcloud, sigue estos pasos:
Si la VM está en ejecución, detenla con el comando
gcloud compute instances stop
:gcloud compute instances stop VM_NAME
Sustituye
VM_NAME
por el nombre de la VM que quieras actualizar.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 definir el límite de tiempo como hora o duración, respectivamente. - Incluye la marca
--instance-termination-action
para definir la acción de finalización. - Si la VM tiene alguna unidad SSD local y establece la acción de finalización (
TERMINATION_ACTION
) en detener (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
.
A continuación, sustituye lo siguiente:
VM_NAME
: el nombre de la VM que quieras actualizar.DURATION
: la duración que quieres que se ejecute esta VM antes de que se termine automáticamente. Formatea la duración como el número de días, horas, minutos y segundos seguido ded
,h
,m
ys
respectivamente. Por ejemplo, especifica30m
para una duración de 30 minutos o1d2h3m4s
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
: la hora a la que quieres que esta VM se termine automáticamente. La hora que especifiques debe ser al menos 30 segundos posterior a la hora actual y, como máximo, 120 días posterior a la hora actual. Formatea la hora como una marca de tiempo RFC 3339:YYYY-MM-DDTHH:MM:SSOFFSET
Haz los cambios siguientes:
YYYY-MM-DD
: una fecha con el 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 con el formato de hora de 24 horas (dos dígitos), minutos (dos dígitos) y segundos (dos dígitos) separados por dos puntos.OFFSET
: la zona horaria con el formato de una diferencia con respecto al tiempo universal coordinado (UTC). Por ejemplo, para usar la hora estándar del Pacífico (PST), que es 8 horas menos que UTC, especifica-08:00
. También puedes especificarZ
para no usar ningún desfase (UTC+0).
TERMINATION_ACTION
: la acción de finalización de esta VM, que puede ser detener (STOP
) o eliminar (DELETE
). Si este campo es obligatorio o tiene un valor predeterminado, varía en función del modelo de aprovisionamiento de la VM:- Si se trata de una VM de Spot (si la VM usa la marca
--provisioning-model=SPOT
), la marca--instance-termination-action=TERMINATION_ACTION
es opcional. Si se omite esta marca, la acción de finalización predeterminada es detener. - De lo contrario (valor predeterminado), se requiere la marca
--instance-termination-action=TERMINATION_ACTION
.
- Si se trata de una VM de Spot (si la VM usa la marca
- Debes omitir la marca
Si quieres que la VM empiece a ejecutarse, inicia la VM con el comando
gcloud compute instances start
:gcloud compute instances start VM_NAME
Sustituye
VM_NAME
por el nombre de la VM.
REST
Para actualizar el límite de tiempo de una máquina virtual mediante la API de Compute Engine, sigue estos pasos:
Si la VM está en ejecución, deténla con el método
instances.stop
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop
Haz los cambios siguientes:
PROJECT_ID
: el ID de proyecto del proyecto que contiene la VM.ZONE
: la zona que contiene la VM.VM_NAME
: el nombre de la VM que quieras actualizar.
Actualiza la propiedad
scheduling
de la máquina virtual, incluidos los campos del límite de tiempo de la máquina virtual, con el métodoinstances.setScheduling
. Incluye el campomaxRunDuration
o el campoterminationTime
para definir el límite de tiempo como duración u hora, respectivamente:Para definir 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 definir 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" }
Haz los cambios siguientes:
PROJECT_ID
: el ID de proyecto 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 va a usar en la nueva VM.MACHINE_TYPE
: el tipo de máquina predefinido o personalizado de la nueva VM.VM_NAME
: el nombre de la nueva VM.IMAGE_PROJECT
: el proyecto que contiene la imagen. Por ejemplo, si especificafamily/debian-10
como imagen, especifiquedebian-cloud
como proyecto de imagen.IMAGE
: la imagen de la nueva VM. Puedes especificar una versión concreta de una imagen pública o una familia de imágenes. Por ejemplo, si especificasfamily/debian-10
como imagen ydebian-cloud
como proyecto de imagen, Compute Engine creará una VM a partir de la versión más reciente de la imagen del SO de la familia de imágenes de Debian 10.DURATION
: la duración en segundos que quieres que se ejecute esta VM antes de que se termine automáticamente. La duración mínima es de 30 segundos (30s
) y la máxima es de 120 días (120d
).TIME
: la hora a la que quieres que esta VM se termine automáticamente. La hora que especifiques debe ser al menos 30 segundos posterior a la hora actual y, como máximo, 120 días posterior a la hora actual. Formatea la hora como una marca de tiempo RFC 3339:YYYY-MM-DDTHH:MM:SSOFFSET
Haz los cambios siguientes:
YYYY-MM-DD
: una fecha con el 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 con el formato de hora de 24 horas (dos dígitos), minutos (dos dígitos) y segundos (dos dígitos) separados por dos puntos.OFFSET
: zona horaria con el formato de una diferencia con respecto al tiempo universal coordinado (UTC). Por ejemplo, para usar la hora estándar del Pacífico (PST), que es 8 horas menos que UTC, especifica-08:00
. También puedes especificarZ
para no usar ningún desfase (UTC+0).
TERMINATION_ACTION
: la acción de finalización de esta VM, que puede ser detener (STOP
) o eliminar (DELETE
). Si este campo es obligatorio o tiene un valor predeterminado, varía en función del modelo de aprovisionamiento de la VM:- Si se trata de una VM de Spot (si la VM usa el campo
"provisioningModel": "SPOT"
), el campo"instanceTerminationAction": "TERMINATION_ACTION"
es opcional. Si se omite este campo, la acción de finalización predeterminada es detener. - De lo contrario (valor predeterminado), el campo
"instanceTerminationAction": "TERMINATION_ACTION"
es obligatorio.
- Si se trata de una VM de Spot (si la VM usa el campo
Si quieres que la VM empiece a ejecutarse, inicia la VM con el método
instances.start
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/start
Haz los cambios siguientes:
PROJECT_ID
: el ID de proyecto del proyecto que contiene la VM.ZONE
: la zona que contiene la máquina virtual.VM_NAME
: el nombre de la VM.
Monitorizar el tiempo de ejecución de una VM
Puedes monitorizar 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 se ha programado la finalización automática de una VM en ejecución, consulta la marca de tiempo de finalización de la VM:
- Consulta los detalles de una VM.
- En el resultado, consulta el campo de la marca de tiempo de finalización de la VM:
- Si usas la Google Cloud consola, 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 ha terminado automáticamente, consulta las operaciones de la VM:
- Ver operaciones de VM
En el resultado, puedes identificar las operaciones de la máquina virtual que se deben a un límite de tiempo buscando los siguientes tipos de operaciones:
compute.instances.deferredStop
indica una acción de finalización automática de paradacompute.instances.deferredDelete
indica una acción de eliminación automática
Siguientes pasos
Consulta cómo optimizar aún más tus VMs:
- Si tus cargas de trabajo son tolerantes a fallos, puedes usar máquinas virtuales de acceso puntual para obtener descuentos significativos y una cuota dedicada opcional.
- Si quieres que una VM ejecute comandos automáticamente antes de apagarse, puedes usar scripts de apagado.
Consulta más opciones para limitar automáticamente los tiempos de ejecución de las VMs:
A menos que se indique lo contrario, el contenido de esta página está sujeto a la licencia Reconocimiento 4.0 de Creative Commons y las muestras de código están sujetas a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio web de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-09-12 (UTC).
-