Programa una instancia de VM para que se inicie y se detenga


La programación de instancias te permite iniciar y detener instancias de máquina virtual (VM) de manera automática. El uso de programaciones de instancias para automatizar la implementación de las instancias de VM puede ayudarte a optimizar los costos y administrar las instancias de VM de forma más eficiente. Puedes usar las programaciones de instancias para cargas de trabajo recurrentes y únicas. Por ejemplo, usa programaciones de instancias para ejecutar solo instancias de VM durante las horas de trabajo o proporcionar capacidad a un evento único.

Para usar programaciones de instancias, crea una política de recursos que describa el comportamiento de inicio y detención y, luego, adjunta la política a una o más instancias de VM.

Antes de empezar

  • Configura la autenticación si aún no lo hiciste. 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 un código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine de la siguiente manera.

    Selecciona la pestaña para saber cómo planeas usar las muestras en esta página:

    Consola

    Cuando usas la consola de Google Cloud para acceder a los servicios y las APIs de Google Cloud, no necesitas configurar la autenticación.

    gcloud

    1. Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

      gcloud init
    2. Configura una región y una zona predeterminadas.

    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.

      Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

      gcloud init

Roles obligatorios

Para usar programaciones de instancias, debes otorgar los roles de Identity and Access Management (IAM) necesarios a las siguientes principales:

  • El agente de servicio de Compute Engine para tu proyecto. Esto es necesario para que la programación de instancias se ejecute en una VM.

    Si revocas estos permisos después de crear programaciones de instancias, es posible que dichas programaciones de instancias dejen de funcionar sin aviso previo. Para verificar si tus programaciones de instancias se ejecutan correctamente, debes revisar con regularidad los registros de auditoría.

  • La cuenta de usuario o la cuenta de servicio que crea, administra o usa la programación de instancias.

Roles requeridos de agente de servicio de Compute Engine

Para garantizar que el agente de servicio de Compute Engine tenga los permisos necesarios para ejecutar la programación de instancias, pídele a tu administrador que le otorgue al agente de servicio de Compute Engine el rol de IAM Administrador de instancias de Compute (v1) (roles/compute.instanceAdmin.v1) en el proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso.

Este rol predefinido contiene los permisos requeridos para ejecutar la programación de instancias. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para ejecutar la programación de instancias:

  • compute.instances.start
  • compute.instances.stop

Es posible que tu administrador también pueda otorgarle estos permisos al agente de servicio de Compute Engine con roles personalizados u otros roles predefinidos.

Roles de usuario o cuenta de servicio requeridos

Para asegurarte de que tú o tu cuenta de servicio tengan los permisos necesarios a fin de crear y administrar programaciones de instancias, pídele a tu administrador que te otorgue a ti o a tu cuenta de servicio el rol de IAM Administrador de instancias de Compute (v1) (roles/compute.instanceAdmin.v1) en tu organización o proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso.

Este rol predefinido contiene los permisos requeridos para crear y administrar programaciones de instancias. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para crear y administrar programaciones de instancias:

  • Crea una programación de instancias: compute.resourcePolicies.create
  • Enumera una programación de instancias: compute.resourcePolicies.list
  • Describe una programación de instancias: compute.resourcePolicies.get
  • Borra una programación de instancias: compute.resourcePolicies.delete
  • Adjunta una programación de instancias a una VM nueva:
    • compute.instances.create
    • compute.resourcePolicies.use
    • compute.instances.addResourcePolicies
  • Conecta una programación de instancias a una VM existente:
    • compute.resourcePolicies.use
    • compute.instances.addResourcePolicies
  • Quita una programación de instancias de una VM:
    • compute.resourcePolicies.use
    • compute.instances.removeResourcePolicies

Es posible que tu administrador también pueda otorgarte a ti o a tu cuenta de servicio estos permisos con roles personalizados o con otros roles predefinidos.

Limitaciones

  • Solo puedes adjuntar una programación de instancias a las instancias de VM ubicadas en la misma región que la programación de instancias.
  • Cada instancia de VM solo puede seguir una programación de instancias, pero puedes adjuntar cada programación de instancias a hasta 1,000 instancias de VM.
  • Las programaciones de instancias no proporcionan garantías de capacidad, por lo que si los recursos necesarios para una instancia de VM programada no están disponibles en el momento programado, tu instancia de VM podría no iniciarse cuando se programe. Aunque puedes reservar instancias de VM antes de iniciarlas para proporcionar garantías de capacidad, las reservas no se pueden programar de forma automática.
  • La programación de instancias solo inicia y detiene instancias de VM en los momentos especificados, pero puedes iniciar y detener instancias de VM de forma manual en cualquier momento. Por ejemplo, supongamos que tienes una programación que comienza todos los días a las 8 a.m. y se detiene todos los días a las 5 p.m. Si adjuntas esa programación a una instancia de VM detenida a las 4 p.m., esa instancia de VM no se iniciará hasta las 8 a.m. del día siguiente, a menos que inicies la instancia de VM de forma manual antes de esa fecha.
  • Las instancias de VM programadas pueden tardar hasta 15 minutos después de la hora programada para iniciar una operación de inicio o detención. Si necesitas que las instancias de VM se inicien o se detengan en un momento específico, programa la operación 15 minutos antes de lo necesario y programa cada operación con al menos 15 minutos de diferencia.
  • El programador puede fallar si hay un intervalo de menos de 15 minutos entre las operaciones de inicio y detención. Esto se debe a que la operación de detención puede ocurrir antes de la operación de inicio, lo que evita que la operación de inicio suceda.
  • Cada programación de instancias te permite tener hasta una operación de inicio y hasta una operación de detención por hora.
  • No puedes editar programaciones de instancias. Para cambiar una programación de instancias existente para una o más instancias de VM, quita y borra la programación de instancias existente y, luego, crea y adjunta una programación de instancias nueva.

Administra programaciones de instancias

Crea, enumera, describe y borra programaciones de instancias con la consola de Google Cloud, Google Cloud CLI o la API de Compute Engine.

Crea un programación de instancias

Crea una programación de instancias que describa cuándo se deben iniciar o detener automáticamente las instancias de VM. La programación de instancias que creas es una política de recursos que puedes usar si la adjuntas a las instancias de VM o la quitas de las instancias de VM.

Consola

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

    Ir a Instancias de VM

  2. Haz clic en la pestaña Programación de instancias en la parte superior de la página.

  3. Haz clic en Crear programación. Se abrirá el panel Crear una programación.

  4. Ingresa un Nombre.

  5. Ingresa una Descripción (opcional).

  6. En el menú desplegable Región, elige la ubicación para esta programación de instancias.

  7. Define cuándo la programación de la instancia inicia y detiene cualquier instancia de VM adjunta. Si necesitas que las instancias de VM se inicien o se detengan en un momento específico, programa la operación 15 minutos antes de lo necesario. Asegúrate de que cada operación de inicio y detención sea de al menos 15 minutos de diferencia.

    Usa los campos Hora de inicio, Hora de finalización y Frecuencia predeterminadas o, si quieres configurar un programa más complejo, usa expresiones cron.

    • Campos predeterminados:

      1. Ingresa una Hora de inicio, una Hora de finalización o ambas.
        • En el campo Hora de inicio, escribe o haz clic en para elegir la hora a la que deseas iniciar las instancias de VM.
        • En el campo Hora de finalización, escribe o haz clic en para elegir la hora a la que deseas detener las instancias de VM.
      2. En el menú desplegable Frecuencia, ubicado en la parte inferior del panel, elige la frecuencia con la que se repiten las opciones Hora de inicio y Hora de finalización.
    • Expresiones cron:

      1. Para habilitar las expresiones cron, haz clic en el botón Usar expresión CRON en la parte superior del panel.
      2. Ingresa una expresión de inicio de CRON, una expresión de finalización de CRON o ambas.
        • En el campo Expresión de inicio de CRON (Start CRON expression), ingresa una expresión cron que describa cuándo iniciar instancias de VM.
        • En el campo Expresión de finalización de CRON, ingresa una expresión cron que describe cuándo detener las instancias de VM.
  8. En el menú desplegable Zona horaria, elige la zona horaria para la Hora de inicio y la Hora de finalización.

  9. Opcional: en el campo Fecha de inicio, escribe o haz clic en para elegir la fecha y la hora en que deseas que comience esta programación de instancias. Si se omite, la programación entrará en vigor de inmediato.

  10. Opcional: en el campo Fecha de finalización, escribe o haz clic en para elegir la fecha y la hora en que deseas que finalice esta programación de instancias. Si se omite, la programación entrará en vigencia de forma indefinida.

  11. Haga clic en Enviar.

gcloud

Para crear una programación de instancias con gcloud CLI, usa el comando gcloud compute resource-policies create instance-schedule:

gcloud compute resource-policies create instance-schedule SCHEDULE_NAME \
    [--description='SCHEDULE_DESCRIPTION'] \
    [--region=REGION] \
    [--vm-start-schedule='START-OPERATION_SCHEDULE'] \
    [--vm-stop-schedule='STOP-OPERATION_SCHEDULE'] \
    [--timezone=TIME_ZONE] \
    [--initiation-date=INITIATION_DATE] \
    [--end-date=END_DATE]

Reemplaza lo siguiente:

  • SCHEDULE_NAME: es el nombre de la programación de instancias nueva.
  • SCHEDULE_DESCRIPTION: es una descripción de la programación nueva (opcional).
  • REGION: (opcional) la región en la que se encuentran las instancias de VM que deseas adjuntar a esta programación de instancias
  • Reemplaza al menos uno de los siguientes elementos:
    • START-OPERATION_SCHEDULE: un programa que describe cuándo se inician las instancias de VM adjuntas, con el formato de una expresión cron. Si necesitas que las instancias de VM se inicien en un momento específico, programa la operación 15 minutos antes de lo necesario. Para obtener más información, consulta la programación de inicio de operación.
    • STOP-OPERATION_SCHEDULE: una programación que describe cuándo se detiene las instancias de VM adjuntas, con el formato de una expresión cron. Si necesitas que las instancias de VM se detengan en un momento específico, programa la operación 15 minutos antes de lo necesario. Para obtener más información, consulta programación de detención de operaciones.
  • TIME_ZONE: la zona horaria de IANA basada en la ubicación para esta programación de instancias (opcional). Si se omite, se usa el valor predeterminado UTC. Para obtener más información, consulta la zona horaria.
  • INITIATION_DATE: (Opcional) la primera fecha en que la programación de la instancia es efectiva, tiene el formato de una marca de tiempo RFC 3339. Si se omite, la programación entrará en vigor de inmediato. Para obtener más información, consulta la Fecha de inicio.
  • END_DATE: (Opcional) la última fecha en que la programación de la instancia es efectiva, tiene el formato de una marca de tiempo RFC 3339. Si se omite, la programación entrará en vigencia de forma indefinida. Para obtener más información, consulte la fecha de finalización.

REST

Para crear una programación de instancias con la API de Compute Engine, realiza una solicitud mediante el método resourcePolicies.insert:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/resourcePolicies
{
  "name": "SCHEDULE_NAME",
  "description": "SCHEDULE_DESCRIPTION",
  "instanceSchedulePolicy": {
    "vmStartSchedule": {
      "schedule": "START-OPERATION_SCHEDULE"
    },
    "vmStopSchedule": {
      "schedule": "STOP-OPERATION_SCHEDULE"
    },
    "timeZone": "TIME_ZONE",
    "startTime":"INITIATION_DATE",
    "expirationTime":"END_DATE"
  }
}

Reemplaza lo siguiente:

  • PROJECT: Es el ID de tu proyecto.
  • REGION: la región en la que se encuentran las instancias de VM que deseas adjuntar a esta programación de instancias.
  • SCHEDULE_NAME: es el nombre de la programación de instancias nueva.
  • SCHEDULE_DESCRIPTION: es una descripción de la programación nueva (opcional).
  • START-OPERATION_SCHEDULE o STOP-OPERATION_SCHEDULE: Especifica al menos uno de los siguientes valores:
    • START-OPERATION_SCHEDULE: un programa que describe cuándo se inician las instancias de VM adjuntas, con el formato de una expresión cron. Si necesitas que las instancias de VM se inicien en un momento específico, programa la operación 15 minutos antes de lo necesario. Para obtener más información, consulta la programación de inicio de operación.
    • STOP-OPERATION_SCHEDULE: una programación que describe cuándo se detiene las instancias de VM adjuntas, con el formato de una expresión cron. Si necesitas que las instancias de VM se detengan en un momento específico, programa la operación 15 minutos antes de lo necesario. Para obtener más información, consulta programación de detención de operaciones.
  • TIME_ZONE: La zona horaria de IANA basada en la ubicación para esta programación de instancias. Para obtener más información, consulta la zona horaria.
  • INITIATION_DATE: (Opcional) la primera fecha en que la programación de la instancia es efectiva, tiene el formato de una marca de tiempo RFC 3339. Si se omite, la programación entrará en vigor de inmediato. Para obtener más información, consulta la Fecha de inicio.
  • END_DATE: (Opcional) la última fecha en que la programación de la instancia es efectiva, tiene el formato de una marca de tiempo RFC 3339. Si se omite, la programación entrará en vigencia de forma indefinida. Para obtener más información, consulte la fecha de finalización.

Cada programación de instancias tiene la siguiente configuración:

programación de inicio de operaciones, programación de detención de operaciones

Programas que describen cuándo comienza y se detiene cualquier instancia de VM adjunta. Una programación de instancias puede tener uno de estas programaciones o ambas.

Cuando creas programaciones de instancias mediante la consola de Google Cloud, puedes elegir una Hora de inicio, una Hora de detención y una Frecuencia, o dar formato a cada programación como una expresión cron. Cuando crees programaciones de instancias con la CLI de gcloud o la API de Compute Engine, debes dar formato a cada programación como una expresión cron.

En la siguiente tabla, se definen los campos de una expresión de cron y los valores compatibles para cada campo.

Minuto Hora Día del mes Mes Día de la semana
0-59 0-23 1-31

en las que los 29-31 solo son efectivos para meses relevantes

1-12 0-6 o SUN-SAT (de domingo a sábado)

En el ejemplo anterior, se ilustra lo siguiente: 0=SUN, 1=MON, 6=SAT

Además de estos valores, también se pueden usar los siguientes caracteres especiales en cada campo en una expresión cron.
Carácter especial Significado Ejemplo
* cualquiera Si el campo del día del mes, el campo del mes y el campo de día de la semana se configuran en *, la programación se repite todos los días.
- rango Si el campo de día de la semana se establece en MON-FRI (o 1-5), la programación se repite todas las semanas, de lunes a viernes.
, list Si el campo de mes se configura en 1-6,8-12, el programa se repite todos los meses, excepto en julio.

Cuando escribas una expresión cron, ten en cuenta lo siguiente:

  • El espacio en blanco se usa para separar los campos de una expresión cron. Recuerda no agregar espacios en blanco adicionales en un campo que usa caracteres especiales.
  • Cuando especificas un día de la semana y un día del mes (cuando no se configura ningún campo como *), el programa usa la unión de estos valores, no la intersección. Por ejemplo, el programa 0 8 1 * MON comienza a las 8:00 a.m. todos los lunes y el primer día de cada mes. Ese programa no comienza a las 8:00 a.m. solo los lunes que también son el primer día del mes.
zona horaria

La zona horaria de IANA basada en la ubicación para la programación de inicio de operación y la programación de detención de operación. La base de datos de zonas horarias de IANA define una lista de valores disponibles. Esta zona horaria se usa como referencia solo para las programaciones de inicio y finalización de operaciones. No se usa para la fecha de inicio ni la fecha de finalización. La zona horaria es opcional cuando se usa la CLI de gcloud o la API de Compute Engine. Si se omite, se usa el valor predeterminado UTC.

En algunas zonas horarias de IANA, se observa el horario de verano (DST), que puede afectar las programaciones de instancias. Los detalles del DST (por ejemplo, cuándo comienza y finaliza el DST, y cuánto tiempo se omite y se repite) varía según la zona horaria.

fecha de inicio, fecha de finalización

El marco temporal de la programación de la instancia. Ambos valores son opcionales. Las operaciones se repiten anualmente, a menos que especifiques estos valores para limitar la programación a un solo año.

Cuando crees programaciones de instancias mediante la consola de Google Cloud, elige una fecha, hora y zona horaria con los campos Fecha de inicio y Fecha de finalización.

Cuando se crean programaciones de instancias con la CLI de gcloud o la API de Compute Engine, estos valores se formatean 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 del mes separado 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, la hora estándar del Pacífico (PST), que es 8 horas antes de UTC, se escribe como -08:00. Como alternativa, si no quieres usar una compensación (la zona horaria UTC), escribe Z.

Enumera programaciones de instancias

Enumera las programaciones de instancias a fin de ver todas las programaciones de instancias existentes para tu proyecto.

Consola

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

    Ir a Instancias de VM

  2. Haz clic en la pestaña Programación de instancias en la parte superior de la página. Se mostrará una lista de todas las programaciones de instancias para este proyecto.

gcloud

Para ver una lista de todas las políticas de recursos, incluidas las programaciones de instancias, con gcloud CLI, usa el comando gcloud compute resource-policies list. De forma opcional, puedes incluir la marca --filter para restringir los resultados a una región específica.

gcloud compute resource-policies list \
    [--filter="region:(REGION)"]

Reemplaza lo siguiente:

  • REGION: (opcional) la región en la que se encuentran las programaciones de instancias que deseas enumerar.

REST

Para ver una lista de todas las políticas de recursos, incluidas las programaciones de instancias, en una región específica con la API de Compute Engine, realiza una solicitud con el método resourcePolicies.list:

GET https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/resourcePolicies

Reemplaza lo siguiente:

  • PROJECT: Es el ID de tu proyecto.
  • REGION: la región en la que se encuentran las programaciones de instancias que deseas enumerar.

Describe una programación de instancias

Describe una programación de instancias para ver su descripción, horario, operaciones y una lista de todas las instancias de VM a las que está conectado.

Consola

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

    Ir a Instancias de VM

  2. Haz clic en la pestaña Programación de instancias en la parte superior de la página. Se mostrará una lista de todas las programaciones de instancias para este proyecto.

  3. Haz clic en el nombre de la programación de instancias que deseas describir. Se abrirá la página Detalles de la programación de instancias para esa programación.

gcloud

Para describir una programación de instancias con gcloud CLI, usa el comando gcloud compute resource-policies describe:

gcloud compute resource-policies describe SCHEDULE_NAME \
    [--region=REGION]

Reemplaza lo siguiente:

  • SCHEDULE_NAME: el nombre de la programación de instancias que quieres describir.
  • REGION: (Opcional) la región donde se encuentra la programación de instancias.

El resultado es similar a este:

...
description: Every Monday to Friday in 2022, start VMs at 8 AM and stop VMs at 5 PM.
...
instanceSchedulePolicy:
 expirationTime: '2022-12-31T23:59:59Z'
 startTime: '2022-01-01T00:00:00Z'
 timeZone: UTC
 vmStartSchedule:
   schedule: 0 8 * * MON-FRI
 vmStopSchedule:
   schedule: 0 17 * * MON-FRI
...
name: example-instance-schedule
region: https://www.googleapis.com/compute/v1/projects/example-project/regions/us-west1
resourceStatus:
 instanceSchedulePolicy:
   nextRunStartTime: '2022-01-03T08:00:00Z'
...
status: READY

REST

Para describir una programación de instancias con la API de Compute Engine, realiza una solicitud mediante el método resourcePolicies.get:

GET https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/resourcePolicies/SCHEDULE_NAME

Reemplaza lo siguiente:

  • PROJECT: Es el ID de tu proyecto.
  • REGION: la región en la que se encuentra la programación de instancias.
  • SCHEDULE_NAME: el nombre de la programación de instancias que quieres describir.

El resultado es similar al siguiente:

{
  ...
  "description": "Every Monday to Friday in 2022, start VMs at 8 AM and stop VMs at 5 PM.",
  "name": "example-instance-schedule",
  "instanceSchedulePolicy": {
    "vmStartSchedule": {
      "schedule": "0 8 * * MON-FRI"
    },
    "vmStopSchedule": {
      "schedule": "0 17 * * MON-FRI"
    },
    "timeZone": "UTC",
    "startTime": "2022-01-01T00:00:00Z",
    "expirationTime": "2022-12-31T23:59:59Z"
  },
  "status": "READY",
  "resourceStatus": {
    "instanceSchedulePolicy": {
      "nextRunStartTime": "2022-01-03T08:00:00Z"
    }
  },
  ...
}

Borra una programación de instancias

Borra una programación de instancias cuando ya no la necesites y quita todas las instancias de VM adjuntas y borra la política de recursos.

Consola

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

    Ir a Instancias de VM

  2. Haz clic en la pestaña Programación de instancias en la parte superior de la página. Se mostrará una lista de todas las programaciones de instancias para este proyecto.

  3. Elige las casillas de verificación de las programaciones de instancias que deseas borrar.

  4. Haz clic en Borrar en la parte superior de la página. Se abrirá un cuadro de diálogo nuevo para confirmar esta acción.

  5. En el cuadro de diálogo, haz clic en Borrar.

gcloud

  1. Si esta programación de instancias se adjunta a alguna instancia de VM, quítala.
    1. Para verificar a qué instancias de VM está adjuntada esta programación, describe la programación de instancias.
    2. Para cada instancia de VM a la que esté conectado este programa, quita la programación de instancias.
  2. Para borrar una programación de instancias con gcloud CLI, usa el comando gcloud compute resource-policies delete:

    gcloud compute resource-policies delete SCHEDULE_NAME \
       [--region=REGION]
    

    Reemplaza lo siguiente:

    • SCHEDULE_NAME: es el nombre de la programación de la instancia que deseas borrar.
    • REGION: (Opcional) la región donde se encuentra la programación de instancias.

REST

  1. Si esta programación de instancias se adjunta a alguna instancia de VM, quítala.
    1. Para verificar a qué instancias de VM está adjuntada esta programación, describe la programación de instancias.
    2. Para cada instancia de VM a la que esté conectado este programa, quita la programación de instancias.
  2. Para borrar una programación de instancias con la API de Compute Engine, realiza una solicitud con el método resourcePolicies.delete:

    DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/resourcePolicies/SCHEDULE_NAME
    

    Reemplaza lo siguiente:

    • PROJECT: Es el ID de tu proyecto.
    • REGION: la región en la que se encuentra la programación de instancias.
    • SCHEDULE_NAME: es el nombre de la programación de la instancia que deseas borrar.

Usa programaciones de instancias con instancias de VM

Para usar una programación de instancias, adjúntala a una o más instancias de VM que quieras seguir con esa programación. Puedes adjuntar una programación de instancias a una instancia de VM existente o mientras creas una instancia de VM nueva. Para evitar que una instancia de VM siga una programación de instancias adjunta, quita la programación de esa instancia de VM.

Conecta una programación de instancias mientras creas una instancia de VM nueva.

Para adjuntar una programación de instancias a una nueva instancia de VM, debes crear la instancia de VM en la misma región que la programación de instancias que usas. Obtén más información para crear una instancia de VM.

Consola

No puedes adjuntar una programación de instancias mientras creas una instancia con la consola de Google Cloud. Para usar la consola de Google Cloud a fin de adjuntar una programación de instancias a una instancia de VM nueva, crea una instancia de VM y, luego, adjunta una programación a la Instancia de VM

gcloud

Para adjuntar una programación de instancias a una instancia de VM con gcloud CLI, usa el comando gcloud compute instances create con la marca --resource-policies. Por ejemplo, para crear una instancia de VM a partir de una imagen pública con una programación de instancias adjunta, usa el siguiente comando:

gcloud compute instances create VM_NAME \
    --resource-policies=SCHEDULE_NAME \
    [--zone=ZONE] \
    [--image IMAGE | --image-family IMAGE_FAMILY] \
    [--image-project IMAGE_PROJECT]

Reemplaza lo siguiente:

  • VM_NAME: es el nombre de la instancia de VM a la que deseas adjuntar una programación de instancias.
  • SCHEDULE_NAME: el nombre de la programación de instancias que quieres adjuntar.
  • ZONE: (Opcional) la zona en la que se encuentra tu instancia de VM.
  • Opcional: Crea una instancia de VM a partir de una imagen pública:
    • IMAGE o IMAGE_FAMILY: Especifica una de las siguientes opciones:
    • IMAGE: Es la versión requerida de una imagen pública. Por ejemplo, --image debian-10-buster-v20200309.
    • IMAGE_FAMILY: Es una familia de imágenes. Esto crea la VM a partir de la imagen de SO no obsoleta más reciente. Por ejemplo, si especificas --image-family debian-10, Compute Engine crea una VM a partir de la última versión de la imagen de SO en la familia de imágenes Debian 10.
    • IMAGE_PROJECT: es el proyecto que contiene la imagen.

REST

Para adjuntar una programación de instancias a una instancia de VM con la API de Compute Engine, realiza una solicitud con el método instances.insert y, luego, incluye el atributo resourcePolicies. Por ejemplo, para crear una instancia de VM a partir de una imagen pública con una programación de instancias adjunta, realiza la siguiente solicitud:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE",
  "name": "VM_NAME",
  "disks": [
    {
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      },
      "boot": true
    }
  ],
  "resourcePolicies": [
    "https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/resourcePolicies/SCHEDULE_NAME"
  ]
}

Reemplaza lo siguiente:

  • PROJECT_ID: es el ID del proyecto en el que se creará la VM.
  • ZONE: Es la zona en la que se creará la VM.
  • MACHINE_TYPE_ZONE: es la zona que contiene 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.
  • Opcional: Crea una instancia de VM a partir de una imagen pública:
    • IMAGE_PROJECT: es el proyecto que contiene la imagen. Por ejemplo, si especificas debian-10 como familia de imágenes, especifica debian-cloud como proyecto de imagen.
    • IMAGE o IMAGE_FAMILY: Especifica una de las siguientes opciones:
    • IMAGE: Es la versión requerida de una imagen pública. Por ejemplo: "sourceImage": "projects/debian-cloud/global/images/debian-10-buster-v20200309".
    • IMAGE_FAMILY: Es una familia de imágenes. Esto crea la VM a partir de la imagen de SO no obsoleta más reciente. Por ejemplo, si especificas "sourceImage": "projects/debian-cloud/global/images/family/debian-10", Compute Engine crea una VM a partir de la última versión de la imagen de SO en la familia de imágenes Debian 10.
  • REGION: la región en la que se encuentra la programación de instancias.
  • SCHEDULE_NAME: el nombre de la programación de instancias que quieres adjuntar.

Puedes verificar si la programación de la instancia se ejecuta con éxito si verificas los registros de auditoría para la política de recursos de la programación de instancias y la instancia de VM adjunta. Es posible que debas esperar hasta 15 minutos después del tiempo programado para cada operación.

Conecta una programación de instancias a una instancia de VM existente

Puedes adjuntar una programación de instancias a cualquier instancia de VM existente que se encuentre en la misma región que la programación de la instancia.

Consola

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

    Ir a Instancias de VM

  2. Haz clic en la pestaña Programación de instancias en la parte superior de la página. Se mostrará una lista de todas las programaciones de instancias para este proyecto.

  3. Haz clic en el nombre de la programación de instancias que deseas adjuntar. Se abrirá la página Detalles de la programación de instancias.

  4. Haz clic en Agregar instancias a la programación. Se abrirá el panel Agregar instancias a la programación.

  5. Elige la casilla de verificación para cada instancia de VM a la que deseas adjuntar esta programación.

  6. Haga clic en Add.

gcloud

Para adjuntar una programación de instancias a una instancia de VM mediante gcloud CLI, usa el comando gcloud compute instances add-resource-policies:

gcloud compute instances add-resource-policies VM_NAME \
    --resource-policies=SCHEDULE_NAME \
    [--zone=ZONE]

Reemplaza lo siguiente:

  • VM_NAME: es el nombre de la instancia de VM a la que deseas adjuntar una programación de instancias.
  • SCHEDULE_NAME: el nombre de la programación de instancias que quieres adjuntar.
  • ZONE: (Opcional) la zona en la que se encuentra tu instancia de VM.

REST

Para adjuntar una programación de instancias a una instancia de VM con la API de Compute Engine, realiza una solicitud con el método instances.addResourcePolicies:

POST https://www.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instances/VM_NAME/addResourcePolicies
{
  "resourcePolicies": "https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/resourcePolicies/SCHEDULE_NAME"
}

Reemplaza lo siguiente:

  • PROJECT: Es el ID de tu proyecto.
  • ZONE: La zona en la que se encuentra la instancia.
  • VM_NAME: es el nombre de la instancia de VM a la que deseas adjuntar una programación de instancias.
  • REGION: la región en la que se encuentra la programación de instancias.
  • SCHEDULE_NAME: el nombre de la programación de instancias que quieres adjuntar.

Puedes verificar si la programación de la instancia se ejecuta con éxito si verificas los registros de auditoría para la política de recursos de la programación de instancias y la instancia de VM adjunta. Es posible que debas esperar hasta 15 minutos después del tiempo programado para cada operación.

Quita una programación de instancias de una instancia de VM

Para impedir que una instancia de VM siga una programación de instancias, quita la programación de instancias de la instancia de VM.

Consola

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

    Ir a Instancias de VM

  2. Haz clic en la pestaña Programación de instancias en la parte superior de la página. Se muestra una lista de todas las programaciones de instancias para este proyecto.

  3. Haz clic en el nombre de la programación de instancias que deseas quitar. Se abrirá la página Detalles de la programación de instancias.

  4. En la sección Instancias adjuntas, elige la casilla de verificación para cada instancia de VM que deseas quitar de esta programación.

  5. Haz clic en Quitar instancias de la programación. Se abrirá un cuadro de diálogo nuevo para confirmar esta acción.

  6. En el cuadro de diálogo, haz clic en Quitar.

gcloud

Para quitar una programación de instancias de una instancia de VM con gcloud CLI, usa el comando gcloud compute instances remove-resource-policies:

gcloud compute instances remove-resource-policies VM_NAME \
    --resource-policies=SCHEDULE_NAME \
    [--zone=ZONE]

Reemplaza lo siguiente:

  • VM_NAME: es el nombre de la instancia de VM de la que deseas quitar una programación de instancias.
  • SCHEDULE_NAME: es el nombre de la programación de la instancia que deseas quitar.
  • ZONE: (Opcional) la zona en la que se encuentra tu instancia de VM.

REST

Para quitar una programación de instancias de una instancia de VM con la API de Compute Engine, realiza una solicitud con el método instances.removeResourcePolicies:

POST https://www.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instances/VM_NAME/removeResourcePolicies
{
  "resourcePolicies": "https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/resourcePolicies/SCHEDULE_NAME"
}

Reemplaza lo siguiente:

  • PROJECT: Es el ID de tu proyecto.
  • ZONE: La zona en la que se encuentra la instancia.
  • VM_NAME: es el nombre de la instancia de VM de la que deseas quitar una programación de instancias.
  • REGION: la región en la que se encuentra la programación de instancias.
  • SCHEDULE_NAME: es el nombre de la programación de la instancia que deseas quitar.

¿Qué sigue?