Como programar uma instância de VM para iniciar e parar


As programações de instâncias permitem que você inicie e interrompa instâncias de máquina virtual (VM) automaticamente. O uso de programações de instâncias para automatizar a implantação de instâncias de VM pode ajudar você a otimizar custos e gerenciar instâncias de VM com mais eficiência. É possível usar programações de instâncias para cargas de trabalho recorrentes e únicas. Por exemplo, use programações de instâncias para executar somente instâncias de VM durante o horário de trabalho ou para fornecer capacidade para um evento de uso único.

Para usar programações de instâncias, crie uma política de recursos que descreva o comportamento de início e parada e, em seguida, anexe a política a uma ou mais instâncias de VM.

Antes de começar

  • Configure a autenticação, caso ainda não tenha feito isso. A autenticação é o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud. Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no Compute Engine da seguinte maneira.

    Selecione a guia para como planeja usar as amostras nesta página:

    Console

    Quando você usa o console do Google Cloud para acessar os serviços e as APIs do Google Cloud, não é necessário configurar a autenticação.

    gcloud

    1. Instale a Google Cloud CLI e inicialize-a executando o seguinte comando:

      gcloud init
    2. Defina uma região e uma zona padrão.

    REST

    Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para a CLI gcloud.

      Instale a Google Cloud CLI e inicialize-a executando o seguinte comando:

      gcloud init

Funções exigidas

Para usar programações de instâncias, é necessário conceder os papéis necessários do Identity and Access Management (IAM) às seguintes principais:

  • O agente de serviço do Compute Engine para o projeto. Isso é necessário para que a programação da instância seja executada em uma VM.

    Se você revogar essas permissões após a criação de programações de instâncias, elas poderão parar de funcionar sem aviso prévio. Para verificar se as programações de instância foram executadas com êxito, verifique regularmente os registros de auditoria.

  • Conta de usuário ou de serviço que cria, gerencia ou usa a programação da instância.

Papéis necessários do agente de serviço do Compute Engine

Para garantir que o agente de serviço do Compute Engine tenha as permissões necessárias para executar a programação da instância, peça ao administrador para conceder ao agente de serviço do Compute Engine o papel do IAM de Administrador da instância do Compute (v1) (roles/compute.instanceAdmin.v1) no projeto. Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

Esse papel predefinido contém as permissões necessárias para executar a programação da instância. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As seguintes permissões são necessárias para executar a programação da instância:

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

O administrador também pode conceder ao agente de serviço do Compute Engine essas permissões com papéis personalizados ou outros predefinidos.

Papéis necessários para usuários ou contas de serviço

Para garantir que você ou sua conta de serviço tenha as permissões necessárias para criar e gerenciar programações de instâncias, peça ao administrador para conceder a você ou à sua conta de serviço o papel do IAM de Administrador da instância do Compute (v1) (roles/compute.instanceAdmin.v1) no projeto ou na organização. Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

Esse papel predefinido contém as permissões necessárias para criar e gerenciar programações de instâncias. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As seguintes permissões são necessárias para criar e gerenciar programações de instâncias:

  • Crie uma programação de instância: compute.resourcePolicies.create
  • Liste uma programação de instância: compute.resourcePolicies.list
  • Descreva uma programação de instância: compute.resourcePolicies.get
  • Exclua uma programação de instância: compute.resourcePolicies.delete
  • Anexe uma programação de instância a uma nova VM:
    • compute.instances.create
    • compute.resourcePolicies.use
    • compute.instances.addResourcePolicies
  • Anexe uma programação de instância a uma VM atual:
    • compute.resourcePolicies.use
    • compute.instances.addResourcePolicies
  • Remova uma programação de instância de uma VM:
    • compute.resourcePolicies.use
    • compute.instances.removeResourcePolicies

O administrador também pode conceder a você ou à sua conta de serviço essas permissões com papéis personalizados ou outros predefinidos.

Limitações

  • Só é possível anexar uma programação de instância a instâncias de VM localizadas na mesma região da programação da instância.
  • Cada instância de VM pode seguir apenas uma programação de instância, mas é possível anexar cada programação a até mil instâncias de VM.
  • As programações de instância não oferecem garantias de capacidade. Portanto, se os recursos necessários para uma instância de VM programada não estiverem disponíveis no momento programado, sua instância de VM poderá não ser iniciada quando programada. É possível reservar instâncias de VM antes de iniciá-las para fornecer garantias de capacidade, mas não é possível programar reservas automaticamente.
  • As programações de instância só iniciam e interrompem instâncias de VM nos momentos especificados, mas é possível iniciar e interromper manualmente as instâncias de VM a qualquer momento. Por exemplo, suponha que você tenha uma programação que começa diariamente às 8h e é interrompida diariamente às 17h. Se você anexar essa programação a uma instância de VM interrompida às 16h, essa instância de VM só será iniciada às 8h do dia seguinte, a menos que você inicie manualmente a instância de VM antes disso.
  • As instâncias de VM programadas podem levar até 15 minutos para iniciar uma operação de início ou parada. Se você precisa que as instâncias de VM sejam iniciadas ou interrompidas em um horário específico, programe a operação 15 minutos antes do necessário e programe cada operação com pelo menos 15 minutos de diferença.
  • O programador poderá falhar se houver um intervalo de menos de 15 minutos entre as operações de inicialização e de interrupção. Isso ocorre porque a operação de interrupção pode ocorrer antes da operação de inicialização, impedindo que ela aconteça.
  • Cada programação de instância permite ter até uma operação de inicialização e até uma operação de interrupção por hora.
  • Não é possível editar programações de instâncias. Para alterar uma programação de instância existente para uma ou mais instâncias de VM, remova e exclua a programação de uma instância atual e, em seguida, crie e anexe uma nova programação de instâncias.

Como gerenciar programações de instâncias

Crie, liste, descreva e exclua programações de instâncias usando o Console do Google Cloud, a CLI do Google Cloud ou a API Compute Engine.

Como criar uma programação de instâncias

Crie uma programação de instância que descreva quando as instâncias de VM devem ser iniciadas ou interrompidas automaticamente. A programação de instância que você cria é uma política de recursos. Use-a anexando-a ou removendo-a de instâncias de VM.

Console

  1. No console do Google Cloud, acesse a página Instâncias de VMs.

    Acessar instâncias de VM

  2. Clique na guia Programações da instância na parte superior da página.

    .
  3. Clique em Criar programação. O painel Criar uma programação será aberto.

  4. Digite um Nome.

  5. Opcional: digite uma Descrição.

  6. No menu suspenso Região, selecione o local da programação de instância.

  7. Defina quando a programação da instância será iniciada e interromperá as instâncias de VM anexadas. Se você precisa que as instâncias de VM sejam iniciadas ou interrompidas em um horário específico, programe a operação 15 minutos antes do necessário. Certifique-se de que cada operação de inicialização e interrupção tenha pelo menos 15 minutos de diferença.

    Use os campos padrão Horário de início, Horário de término e Frequência ou, se quiser configurar uma programação mais complexa, use expressões cron.

    • Campos padrão:

      1. Insira um Horário de início, um Horário de término ou ambos.
        • No campo Horário de início, digite ou clique em para selecionar o horário de início das instâncias de VM.
        • No campo Horário de término, digite ou clique em para selecionar o horário de término das instâncias de VM.
      2. No menu suspenso Frequência na parte inferior do painel, selecione com que frequência o horário de início e o horário de término se repetem.
    • Expressões cron:

      1. Para ativar as expressões cron, clique no botão Usar expressão CRON na parte superior do painel.
      2. Insira uma expressão Iniciar CRON, Interromper CRON ou ambas.
        • No campo Iniciar expressão CRON, insira uma expressão cron que descreva quando iniciar instâncias de VM.
        • No campo Interromper expressão CRON, insira uma expressão cron que descreva quando interromper instâncias de VM.
  8. No menu suspenso Fuso horário, selecione o fuso horário do Horário de início e Horário de término.

  9. Opcional: no campo Iniciar data, digite ou clique em para selecionar a data e a hora em que você quer que a programação da instância comece. Se omitida, a programação entrará em vigor imediatamente.

  10. Opcional: no campo Data de término, digite ou clique em para selecionar a data e a hora em que a programação de instância será encerrada. Se omitida, a programação entrará em vigor indefinidamente.

  11. Clique em Enviar.

gcloud

Para criar uma programação de instância usando a gcloud CLI, use o 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]

Substitua:

  • SCHEDULE_NAME: o nome da nova programação de instância.
  • SCHEDULE_DESCRIPTION: opcional: uma descrição da nova programação de escalonamento;
  • REGION: opcional: a região onde as instâncias de VM que você quer anexar a essa programação da instância estão localizadas.
  • Substitua pelo menos uma das seguintes opções:
    • START-OPERATION_SCHEDULE: uma programação que descreve quando as instâncias de VM anexadas são iniciadas, formatadas como uma expressão cron. Se você precisar que as instâncias de VM sejam iniciadas em um horário específico, programe a operação 15 minutos antes do necessário. Para mais informações, consulte programação de operação inicial.
    • STOP-OPERATION_SCHEDULE: uma programação que descreve quando as instâncias de VM anexadas são interrompidas, formatadas como uma expressão cron. Se você precisa que as instâncias de VM sejam interrompidas em um horário específico, programe a operação 15 minutos antes do necessário. Para mais informações, consulte a programação da operação de interrupção.
  • TIME_ZONE: opcional: o fuso horário da IANA baseado em local para esta programação de instância. Se omitido, o valor padrão UTC será usado. Para mais informações, consulte o fuso horário.
  • INITIATION_DATE: opcional: a primeira data em que a programação da instância é efetiva, formatada como um carimbo de data/hora RFC 3339. Se omitido, a programação entrará em vigor imediatamente. Para mais informações, consulte a data de início.
  • END_DATE: opcional: a última data em que a programação da instância é efetiva, formatada como um carimbo de data/hora RFC 3339. Se omitido, a programação entrará em vigor indefinidamente. Para mais informações, consulte a data de término.

REST

Para criar uma programação de instância usando a API Compute Engine, faça uma solicitação usando o 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"
  }
}

Substitua:

  • PROJECT: o ID do projeto;
  • REGION: a região onde as instâncias de VM que você quer anexar a essa programação da instância estão localizadas.
  • SCHEDULE_NAME: o nome da nova programação de instância.
  • SCHEDULE_DESCRIPTION: opcional: uma descrição da nova programação de escalonamento;
  • START-OPERATION_SCHEDULE ou STOP-OPERATION_SCHEDULE: especifique pelo menos um dos seguintes elementos:
    • START-OPERATION_SCHEDULE: uma programação que descreve quando as instâncias de VM anexadas são iniciadas, formatadas como uma expressão cron. Se você precisar que as instâncias de VM sejam iniciadas em um horário específico, programe a operação 15 minutos antes do necessário. Para mais informações, consulte programação de operação inicial.
    • STOP-OPERATION_SCHEDULE: uma programação que descreve quando as instâncias de VM anexadas são interrompidas, formatadas como uma expressão cron. Se você precisa que as instâncias de VM sejam interrompidas em um horário específico, programe a operação 15 minutos antes do necessário. Para mais informações, consulte a programação da operação de interrupção.
  • TIME_ZONE: o fuso horário da IANA baseado em local para esta programação de instância. Para mais informações, consulte o fuso horário.
  • INITIATION_DATE: opcional: a primeira data em que a programação da instância é efetiva, formatada como um carimbo de data/hora RFC 3339. Se omitido, a programação entrará em vigor imediatamente. Para mais informações, consulte a data de início.
  • END_DATE: opcional: a última data em que a programação da instância é efetiva, formatada como um carimbo de data/hora RFC 3339. Se omitido, a programação entrará em vigor indefinidamente. Para mais informações, consulte a data de término.

Cada programação de instância tem as seguintes configurações:

programação start-operation, stop-operation schedule

Programação que descreve quando a programação da instância começa e interrompe quaisquer instâncias de VM anexadas. Uma programação de instância pode ter uma dessas programações ou ambas.

Ao criar programações de instâncias usando o Console do Google Cloud, é possível selecionar um Horário de início, um Horário de parada e uma Frequência. ou formatar cada programação como uma expressão cron. Ao criar programações de instâncias usando a CLI gcloud ou a API Compute Engine, formate cada programação como uma expressão cron.

A tabela a seguir define os campos de uma expressão cron e os valores compatíveis com cada campo.

Minuto Hora Dia do mês Mês Dia da semana
0-59 0-23 1-31

em que 29 a 31 são eficazes apenas por meses relevantes

1-12 0-6 ou SUN-SAT (domingo-sábado)

em que 0=SUN, 1=MON, … 6=SAT

Além desses valores, cada campo em uma expressão cron também pode usar os seguintes caracteres especiais.
Caractere especial Significado Exemplo
* qualquer um Se os campos dia do mês, mês e dia da semana estiverem definidos como *, a programação se repetirá todos os dias.
- range Se o campo do dia da semana estiver definido como MON-FRI (ou 1-5), a programação será repetida toda semana, de segunda a sexta-feira.
, list Se o campo do mês estiver definido como 1-6,8-12, a programação será repetida a cada mês, exceto julho.

Ao escrever uma expressão cron, considere o seguinte:

  • O espaço em branco é usado para separar os campos de uma expressão cron. Portanto, não adicione espaços em branco em um campo que use caracteres especiais.
  • Quando você determina um dia da semana e um dia do mês (quando nenhum dos campos estiver definido como *), a programação usa a união desses valores, não a interseção. Por exemplo, a programação 0 8 1 * MON começa às 8h de cada segunda-feira e no primeiro dia de cada mês. Essa programação não começa às 8h somente às segundas-feiras que também são o primeiro dia do mês.
fuso horário

Fuso horário da IANA com base no local para o agendamento de operação de início e a programação da operação de interrupção. O banco de dados de fuso horário IANA define uma lista de valores disponíveis. Esse fuso horário é usado como referência apenas para as programações de operação de início e operação. Ele não é usado para a data de início e a data de término. O fuso horário é opcional ao usar a CLI gcloud ou a API Compute Engine. Se omitido, o valor padrão UTC será usado.

Alguns fusos horários da IANA observam o horário de verão (DST, na sigla em inglês), o que pode afetar suas programações de instâncias. Os detalhes do horário de verão (como quando o horário de verão começa e termina, bem como quanto tempo é pulado e repetido) variam de acordo com cada fuso horário.

data de início e data de término

O período em que a programação da instância entra em vigor. Os dois valores são opcionais. As operações são repetidas anualmente, a menos que você especifique esses valores para limitar a programação a um único ano.

Ao criar programações de instâncias usando o Console do Google Cloud, selecione uma data, hora e fuso horário usando os campos Data de início e Data de término.

Ao criar programações de instâncias usando a CLI gcloud ou a API Compute Engine, esses valores são formatados como um carimbo de data/hora RFC 3339:

  YYYY-MM-DDTHH:MM:SSOFFSET

Substitua:

  • YYYY-MM-DD: uma data formatada como um ano de quatro dígitos, um mês de dois dígitos e um dia de dois dígitos do mês, separado por hífens.
  • HH:MM:SS: um horário formatado como uma hora de dois dígitos usando o horário de 24 horas, minutos de dois dígitos e segundos de dois dígitos separados por hífens.
  • OFFSET: fuso horário formatado como uma diferença de Tempo Universal Coordenado (UTC). Por exemplo, o horário padrão do Pacífico (PST, na sigla em inglês), que é 8 horas antes do UTC, é escrito como -08:00. Como alternativa, para usar sem deslocamento (o fuso horário UTC), basta gravar Z.

Como listar programações de instâncias

Liste as programações de instâncias para visualizar todas as programações de instâncias atuais do seu projeto.

Console

  1. No console do Google Cloud, acesse a página Instâncias de VMs.

    Acessar instâncias de VM

  2. Clique na guia Programações da instância na parte superior da página. Isso exibirá uma lista de todas as programações de instâncias do projeto.

gcloud

Para consultar uma lista de todas as suas políticas de recursos, incluindo programações de instâncias, usando a gcloud CLI, use o comando gcloud compute resource-policies list. Opcionalmente, para restringir os resultados a uma região específica, inclua a sinalização --filter.

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

Substitua:

  • REGION: opcional: a região em que a programação da instância que você quer listar está localizada.

REST

Para acessar uma lista de todas as políticas de recursos, incluindo programações de instâncias, em uma região específica usando a API Compute Engine, faça uma solicitação usando o método resourcePolicies.list:

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

Substitua:

  • PROJECT: o ID do projeto;
  • REGION: a região onde a programação da instância que você quer listar está localizada.

Como descrever uma programação de instâncias

Descreva uma programação de instância para visualizar a descrição, o tempo, as operações e uma lista de todas as instâncias de VM a que ela está anexada.

Console

  1. No console do Google Cloud, acesse a página Instâncias de VMs.

    Acessar instâncias de VM

  2. Clique na guia Programações da instância na parte superior da página. Isso exibirá uma lista de todas as programações de instâncias do projeto.

  3. Clique no nome da programação de instância que você quer descrever. A página Detalhes das programações de instâncias será aberta.

gcloud

Para descrever uma programação de instância usando a gcloud CLI, use o comando gcloud compute resource-policies describe:

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

Substitua:

  • SCHEDULE_NAME: o nome da programação de instância que você quer descrever.
  • REGION: opcional: a região em que a programação da instância está localizada.

O resultado será assim:

...
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 descrever uma programação de instância usando a API Compute Engine, faça uma solicitação usando o método resourcePolicies.get:

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

Substitua:

  • PROJECT: o ID do projeto;
  • REGION: a região em que a programação da instância está localizada.
  • SCHEDULE_NAME: o nome da programação de instância que você quer descrever.

A resposta será semelhante a:

{
  ...
  "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"
    }
  },
  ...
}

Como excluir uma programação de instância

Exclua uma programação de instâncias quando não precisar mais dela, removendo instâncias de VM anexadas e excluindo a política de recursos.

Console

  1. No console do Google Cloud, acesse a página Instâncias de VMs.

    Acessar instâncias de VM

  2. Clique na guia Programações da instância na parte superior da página. Isso exibirá uma lista de todas as programações de instâncias do projeto.

  3. Marque as caixas de seleção das programações de instância que você quer excluir.

  4. Clique em Excluir na parte superior da página. Isso abrirá uma nova caixa de diálogo para confirmar a ação.

  5. Na caixa de diálogo, clique em Excluir.

gcloud

  1. Se esta programação de instância estiver anexada a qualquer instância da VM, remova-as.
    1. Para verificar a quais instâncias de VM essa programação está anexada, descreva a programação da instância.
    2. Para remover a programação de instâncias de cada instância de VM vinculada a ela.
  2. Para excluir uma programação de instância usando a gcloud CLI, use o comando gcloud compute resource-policies delete:

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

    Substitua:

    • SCHEDULE_NAME: o nome da programação de instância que você quer excluir.
    • REGION: opcional: a região em que a programação da instância está localizada.

REST

  1. Se esta programação de instância estiver anexada a qualquer instância da VM, remova-as.
    1. Para verificar a quais instâncias de VM essa programação está anexada, descreva a programação da instância.
    2. Para remover a programação de instâncias de cada instância de VM vinculada a ela.
  2. Para excluir uma programação de instância usando a API Compute Engine, faça uma solicitação usando o método resourcePolicies.delete:

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

    Substitua:

    • PROJECT: o ID do projeto;
    • REGION: a região em que a programação da instância está localizada.
    • SCHEDULE_NAME: o nome da programação de instância que você quer excluir.

Como usar programações de instâncias com instâncias de VM

Para usar uma programação de instância, anexe-a a uma ou mais instâncias de VM que você quer seguir essa programação. É possível anexar uma programação de instância a uma instância de VM atual ou ao criar uma nova. Para fazer com que uma instância de VM siga uma programação de instância anexada, remova a programação dela.

Como anexar uma programação de instância durante a criação de uma nova instância de VM

Para anexar uma programação de instância a uma nova instância de VM, crie a instância de VM na mesma região da programação de instância. Saiba mais sobre como criar uma instância de VM.

Console

Não é possível anexar uma programação de instância durante a criação de uma instância usando o Console do Google Cloud. Para usar o Console do Google Cloud para anexar uma programação de instância a uma nova instância de VM, crie uma instância de VM e anexe uma programação à Instância de VM.

gcloud

Para anexar uma programação de instância a uma instância de VM usando a gcloud CLI, use o comando gcloud compute instances create com a flag --resource-policies. Por exemplo, para criar uma instância de VM a partir de uma imagem pública com uma programação de instância anexada, use o seguinte comando:

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

Substitua:

  • VM_NAME: o nome da instância da VM a que você quer anexar uma programação de instância.
  • SCHEDULE_NAME: o nome da programação de instância que você quer anexar.
  • ZONE: opcional: a zona em que a instância de VM está localizada.
  • Opcional: crie uma instância de VM a partir de uma imagem pública:
    • IMAGE ou IMAGE_FAMILY: especifique uma das seguintes opções:
    • IMAGE: versão obrigatória de uma imagem pública. Por exemplo, --image debian-10-buster-v20200309.
    • IMAGE_FAMILY: uma família de imagens. Isso cria a VM a partir da imagem do SO mais recente e não obsoleta. Por exemplo, se você especificar --image-family debian-10, o Compute Engine criará uma VM a partir da versão mais recente da imagem do SO na família de imagens Debian 10.
    • IMAGE_PROJECT: o projeto que contém a imagem.

REST

Para anexar uma programação de instância a uma instância de VM usando a API Compute Engine, faça uma solicitação usando o método instances.insert e inclua o atributo resourcePolicies. Por exemplo, para criar uma instância de VM a partir de uma imagem pública com uma programação de instância anexada, faça a seguinte solicitação:

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"
  ]
}

Substitua:

  • PROJECT_ID: ID do projeto em que a VM será criada.
  • ZONE: zona em que a VM será criada.
  • MACHINE_TYPE_ZONE: zona que contém o tipo de máquina a ser usado para a nova VM.
  • MACHINE_TYPE: tipo de máquina, predefinida ou personalizada, para a nova VM.
  • VM_NAME: o nome da nova VM.
  • Opcional: crie uma instância de VM a partir de uma imagem pública:
    • IMAGE_PROJECT: o projeto que contém a imagem. Por exemplo, se você especificar debian-10 como a família de imagens, especifique debian-cloud como o projeto da imagem.
    • IMAGE ou IMAGE_FAMILY: especifique uma das seguintes opções:
    • IMAGE: versão obrigatória de uma imagem pública. Por exemplo, "sourceImage": "projects/debian-cloud/global/images/debian-10-buster-v20200309"
    • IMAGE_FAMILY: uma família de imagens. Isso cria a VM a partir da imagem do SO mais recente e não obsoleta. Por exemplo, se você especificar "sourceImage": "projects/debian-cloud/global/images/family/debian-10", o Compute Engine criará uma VM a partir da versão mais recente da imagem do SO na família de imagens Debian 10.
  • REGION: a região em que a programação da instância está localizada.
  • SCHEDULE_NAME: o nome da programação de instância que você quer anexar.

Para verificar se a programação da instância foi executada, confira os registros de auditoria da política de recursos da programação e da instância de VM anexada. Talvez seja necessário aguardar até 15 minutos após o tempo programado para cada operação.

Como anexar uma programação de instância a uma instância de VM atual

Anexe uma programação de instância a qualquer instância de VM atual localizada na mesma região da programação da instância.

Console

  1. No console do Google Cloud, acesse a página Instâncias de VMs.

    Acessar instâncias de VM

  2. Clique na guia Programações da instância na parte superior da página. Isso exibirá uma lista de todas as programações de instâncias do projeto.

  3. Clique no nome da programação da instância que você quer anexar. A página Detalhes da programação de instâncias será aberta.

  4. Clique em Adicionar instâncias a serem programadas. O painel Adicionar instâncias a serem programadas será aberto.

  5. Marque a caixa de seleção de cada instância de VM à qual você quer anexar a programação.

  6. Clique em Add.

gcloud

Para anexar uma programação de instância a uma instância de VM usando a gcloud CLI, use o comando gcloud compute instances add-resource-policies:

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

Substitua:

  • VM_NAME: o nome da instância da VM a que você quer anexar uma programação de instância.
  • SCHEDULE_NAME: o nome da programação de instância que você quer anexar.
  • ZONE: opcional: a zona em que a instância de VM está localizada.

REST

Para anexar uma programação de instância a uma instância de VM usando a API Compute Engine, faça uma solicitação usando o 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"
}

Substitua:

  • PROJECT: o ID do projeto.
  • ZONE: a zona em que a instância está localizada.
  • VM_NAME: o nome da instância da VM a que você quer anexar uma programação de instância.
  • REGION: a região em que a programação da instância está localizada.
  • SCHEDULE_NAME: o nome da programação de instância que você quer anexar.

Para verificar se a programação da instância foi executada, confira os registros de auditoria da política de recursos da programação e da instância de VM anexada. Talvez seja necessário aguardar até 15 minutos após o tempo programado para cada operação.

Como remover uma programação de uma instância de VM

Para impedir que uma instância de VM siga uma programação de instâncias, remova a programação de instância da instância de VM.

Console

  1. No console do Google Cloud, acesse a página Instâncias de VMs.

    Acessar instâncias de VM

  2. Clique na guia Programações da instância na parte superior da página. Será exibida uma lista de todas as programações de instâncias do projeto.

  3. Clique no nome da programação de instância que você quer remover. A página Detalhes da programação de instâncias será aberta.

  4. Na seção Instâncias anexadas, marque a caixa de seleção de cada instância de VM que você quer remover da programação.

  5. Clique em Remover instâncias da programação. Uma nova caixa de diálogo será aberta para confirmar essa ação.

  6. Na caixa de diálogo, clique em Remover.

gcloud

Para remover uma programação de instância de uma instância de VM usando a gcloud CLI, use o comando gcloud compute instances remove-resource-policies:

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

Substitua:

  • VM_NAME: o nome da instância da VM da qual você quer remover a programação de uma instância.
  • SCHEDULE_NAME: o nome da programação de instância que você quer remover.
  • ZONE: opcional: a zona em que a instância de VM está localizada.

REST

Para remover uma programação de instância de uma instância de VM usando a API Compute Engine, faça uma solicitação usando o 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"
}

Substitua:

  • PROJECT: o ID do projeto;
  • ZONE: a zona em que a instância está localizada.
  • VM_NAME: o nome da instância da VM da qual você quer remover a programação de uma instância.
  • REGION: a região em que a programação da instância está localizada.
  • SCHEDULE_NAME: o nome da programação de instância que você quer remover.

A seguir