Agendar o início e a paragem de uma instância de VM


As agendas de instâncias permitem-lhe iniciar e parar instâncias de máquinas virtuais (VMs) automaticamente. Para usar programações de instâncias, crie uma política de recursos que detalhe o comportamento de início e paragem e, em seguida, anexe a política a uma ou mais instâncias de VM.

A utilização de programações de instâncias para automatizar a implementação das suas instâncias de VM pode ajudar a otimizar os custos e gerir as instâncias de VM de forma mais eficiente. Pode usar agendamentos de instâncias para cargas de trabalho recorrentes e únicas. Por exemplo, use programações de instâncias para executar instâncias de VM apenas durante o horário de expediente ou para fornecer capacidade para um evento único.

Para saber mais acerca de outras opções para agendar VMs automaticamente, consulte as seguintes páginas:

  • Escalar com base em agendamentos: se executar a sua carga de trabalho num grupo de instâncias geridas (GIG), pode usar agendamentos de escalamento para agendar o número necessário de instâncias de máquinas virtuais (VMs) para eventos recorrentes ou únicos.

  • Limite o tempo de execução de uma VM: Se não quiser criar políticas de recursos, pode configurar diretamente uma VM para ser parada ou eliminada automaticamente quando atingir um tempo ou uma duração específicos.

Antes de começar

  • Se ainda não o tiver feito, configure a autenticação. A autenticação valida a sua identidade para aceder a Google Cloud serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-se no Compute Engine selecionando uma das seguintes opções:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

    2. Set a default region and zone.

    REST

    Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.

      Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

    Para mais informações, consulte o artigo Autenticar para usar REST na Google Cloud documentação de autenticação.

Funções necessárias

Para usar programações de instâncias, tem de conceder as funções de gestão de identidades e acessos (IAM) necessárias aos seguintes responsáveis:

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

    Se revogar estas autorizações após criar horários de instâncias, os seus horários de instâncias podem deixar de funcionar sem aviso prévio. Para verificar se os agendamentos das instâncias são executados com êxito, deve verificar regularmente os registos de auditoria.

  • A conta de utilizador ou a conta de serviço que cria, gere ou usa a agenda de instâncias.

Funções necessárias do agente do serviço do Compute Engine

Para garantir que o agente de serviço do Compute Engine tem as autorizações necessárias para executar a programação de instâncias, peça ao seu administrador para conceder ao agente de serviço do Compute Engine a função do IAM Administrador de instâncias do Compute (v1) (roles/compute.instanceAdmin.v1) no projeto.

Para mais informações sobre a concessão de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Esta função predefinida contém as autorizações necessárias para executar a programação de instâncias. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:

Autorizações necessárias

São necessárias as seguintes autorizações para executar o agendamento de instâncias:

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

O seu administrador também pode conceder ao agente de serviço do Compute Engine estas autorizações com funções personalizadas ou outras funções predefinidas.

Funções necessárias para o utilizador ou a conta de serviço

Para garantir que tem ou que a sua conta de serviço tem as autorizações necessárias para criar e gerir programações de instâncias, peça ao seu administrador para lhe conceder ou à sua conta de serviço a função do IAM Administrador de instâncias do Compute (v1) (roles/compute.instanceAdmin.v1) no seu projeto ou organização.

Para mais informações sobre a concessão de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Esta função predefinida contém as autorizações necessárias para criar e gerir programações de instâncias. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:

Autorizações necessárias

São necessárias as seguintes autorizações para criar e gerir programações de instâncias:

  • Crie uma programação de instâncias: compute.resourcePolicies.create
  • Liste um horário de instância: compute.resourcePolicies.list
  • Descreva um horário de instância: compute.resourcePolicies.get
  • Elimine um agendamento de instância: compute.resourcePolicies.delete
  • Anexe um horário de instância a uma nova VM:
    • compute.instances.create
    • compute.resourcePolicies.use
    • compute.instances.addResourcePolicies
  • Anexe um agendamento de instância a uma VM existente:
    • compute.resourcePolicies.use
    • compute.instances.addResourcePolicies
  • Remova uma programação de instância de uma VM:
    • compute.resourcePolicies.use
    • compute.instances.removeResourcePolicies

O seu administrador também pode atribuir-lhe ou à sua conta de serviço estas autorizações com funções personalizadas ou outras funções predefinidas.

Limitações

  • Só pode anexar um agendamento de instâncias a instâncias de VMs localizadas na mesma região que o agendamento de instâncias.
  • Não pode usar agendamentos de instâncias para parar uma instância com discos SSD locais.
  • Cada instância de VM só pode seguir uma programação de instâncias, mas pode anexar cada programação de instâncias a um máximo de 1000 instâncias de VM.
  • As programações de instâncias não oferecem garantias de capacidade. Por isso, se os recursos necessários para uma instância de VM agendada não estiverem disponíveis na hora agendada, a instância de VM pode não ser iniciada na hora agendada. Embora possa reservar instâncias de VM antes de as iniciar para obter um elevado nível de garantia de que a sua capacidade está disponível quando necessário, não é possível agendar automaticamente as reservas.
  • Os agendamentos de instâncias apenas iniciam e param instâncias de VM nas horas especificadas, mas pode iniciar e parar manualmente instâncias de VM em qualquer altura. Por exemplo, suponhamos que tem um horário que começa diariamente às 08:00 e termina diariamente às 17:00. Se anexar essa programação a uma instância de VM parada às 16:00, essa instância de VM não é iniciada até às 08:00 do dia seguinte, a menos que a inicie manualmente antes disso.
  • As instâncias de VMs agendadas podem demorar até 15 minutos após a hora agendada para iniciar uma operação de início ou paragem. Se precisar que as instâncias de VM sejam iniciadas ou paradas a uma hora específica, agende a operação 15 minutos antes do necessário e agende cada operação com, pelo menos, 15 minutos de intervalo.
  • O agendador pode falhar se houver um intervalo inferior a 15 minutos entre as operações de início e paragem. Isto acontece porque a operação de paragem pode ocorrer antes da operação de início, o que impede que a operação de início ocorra.
  • Cada programação de instância permite ter até uma operação de início e até uma operação de paragem por hora.
  • Para modificar o horário de uma instância, use uma operação de patch na política InstanceSchedule.

Gerir horários de instâncias

Crie, liste, descreva e elimine programações de instâncias através da Google Cloud consola, da Google Cloud CLI ou da API Compute Engine.

Criar um horário de instância

Crie um agendamento de instâncias que descreva quando as suas instâncias de VM devem iniciar ou parar automaticamente. A programação de instâncias que cria é uma política de recursos, que pode usar anexando-a ou removendo-a de instâncias de VMs.

Consola

  1. Na Google Cloud consola, aceda à página Instâncias de VM.

    Aceder às instâncias de VM

  2. Clique no separador Programações de instâncias na parte superior da página.

  3. Clique em Criar programação. É aberto o painel Criar um horário.

  4. Introduza um Nome.

  5. No menu pendente Região, selecione a localização para este horário de instância.

  6. Defina quando o agendamento de instâncias inicia e para as instâncias de VM anexadas. Se precisar que as instâncias de VM sejam iniciadas ou paradas a uma hora específica, agende a operação 15 minutos antes do necessário. Certifique-se de que cada operação de início e paragem tem uma diferença de, pelo menos, 15 minutos.

    Use os campos Hora de início, Hora de fim e Frequência predefinidos ou, se quiser configurar uma programação mais complexa, use expressões cron.

    • Campos predefinidos:

      1. Introduza uma Hora de início, uma Hora de paragem ou ambas.
        • No campo Hora de início, escreva ou clique em para selecionar a hora de início das instâncias de VM.
        • No campo Hora de paragem, escreva ou clique em para selecionar a hora de paragem das instâncias de VM.
      2. No menu pendente Frequência na parte inferior do painel, selecione a frequência de repetição da Hora de início e da Hora de fim.
    • Expressões cron:

      1. Para ativar as expressões cron, clique no botão ativar/desativar Usar expressão CRON na parte superior do painel.
      2. Introduza uma expressão CRON de início, uma expressão CRON de paragem ou ambas.
        • No campo Expressão CRON de início, introduza uma expressão cron que descreva quando iniciar as instâncias de VM.
        • No campo Expressão CRON de paragem, introduza uma expressão cron que descreva quando parar as instâncias de VM.
  7. No menu pendente Fuso horário, selecione o fuso horário para a Hora de início e a Hora de fim.

  8. Opcional: no campo Data de início, escreva ou clique em para selecionar a data e a hora em que quer que esta programação de instâncias comece. Se for omitido, o horário entra em vigor imediatamente.

  9. Opcional: no campo Data de fim, escreva ou clique em para selecionar a data e a hora em que quer que esta programação de instâncias termine. Se for omitido, a programação é eficaz indefinidamente.

  10. Clique em Enviar.

gcloud

Para criar um horário de instância através da CLI gcloud, use o comando gcloud compute resource-policies create instance-schedule:

gcloud compute resource-policies create instance-schedule SCHEDULE_NAME \
    --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 o seguinte:

  • SCHEDULE_NAME: o nome da nova programação de instâncias.
  • REGION: a região onde se encontram as instâncias de VM que quer associar a esta programação de instâncias.
  • Especifique, pelo menos, uma das seguintes opções:
    • START-OPERATION_SCHEDULE: um horário que descreve quando as instâncias de VM anexadas são iniciadas, formatado como uma expressão cron. Se precisar que as instâncias de VM sejam iniciadas a uma hora específica, agende a operação 15 minutos antes do necessário. Para mais informações, consulte o artigo Programação de início da operação.
    • STOP-OPERATION_SCHEDULE: uma programação que descreve quando as instâncias de VM anexadas são paradas, formatada como uma expressão cron. Se precisar que as instâncias de VM parem a uma hora específica, agende a operação 15 minutos antes do necessário. Para mais informações, consulte a programação de paragem da operação.
  • TIME_ZONE: opcional: o fuso horário IANA baseado na localização para este horário da instância. Se for omitido, é usado o valor predefinido UTC. Para mais informações, consulte o artigo sobre o fuso horário.
  • INITIATION_DATE: opcional: a primeira data em que o horário da instância é eficaz, formatada como uma data/hora RFC 3339. Se for omitido, a programação entra em vigor imediatamente. Para mais informações, consulte a data de início.
  • END_DATE: opcional: a última data em que o horário da instância é eficaz, formatada como uma data/hora RFC 3339. Se for omitido, o agendamento é eficaz indefinidamente. Para mais informações, consulte a data de fim.

REST

Para criar um horário de instância através da API Compute Engine, faça um pedido através do método resourcePolicies.insert:

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

Substitua o seguinte:

  • PROJECT: o seu ID do projeto.
  • REGION: a região onde se encontram as instâncias de VM que quer associar a este horário de instâncias.
  • SCHEDULE_NAME: o nome da nova agenda de instâncias.
  • START-OPERATION_SCHEDULE ou STOP-OPERATION_SCHEDULE: especifique, pelo menos, um dos seguintes elementos:
    • START-OPERATION_SCHEDULE: um horário que descreve quando as instâncias de VM anexadas são iniciadas, formatado como uma expressão cron. Se precisar que as instâncias de VM sejam iniciadas a uma hora específica, agende a operação 15 minutos antes do necessário. Para mais informações, consulte o artigo Programação de início da operação.
    • STOP-OPERATION_SCHEDULE: uma programação que descreve quando as instâncias de VM anexadas são paradas, formatada como uma expressão cron. Se precisar que as instâncias de VM parem a uma hora específica, agende a operação 15 minutos antes do necessário. Para mais informações, consulte a programação de paragem da operação.
  • TIME_ZONE: o fuso horário IANA baseado na localização para esta agenda de instâncias. Para mais informações, consulte o artigo sobre o fuso horário.
  • INITIATION_DATE: opcional: a primeira data em que o horário da instância é eficaz, formatada como uma data/hora RFC 3339. Se for omitido, a programação entra em vigor imediatamente. Para mais informações, consulte a data de início.
  • END_DATE: opcional: a última data em que o horário da instância é eficaz, formatada como uma data/hora RFC 3339. Se for omitido, o agendamento é eficaz indefinidamente. Para mais informações, consulte a data de fim.

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

start-operation schedule, stop-operation schedule

Agendamentos que descrevem quando o agendamento de instâncias inicia e para todas as instâncias de VM anexadas. Uma programação de instâncias pode ter uma destas programações ou ambas.

Quando cria agendamentos de instâncias através da Google Cloud consola, pode selecionar uma Hora de início, uma Hora de paragem e uma Frequência ou formatar cada agendamento como uma expressão cron. Quando cria programações de instâncias através da CLI gcloud ou da API Compute Engine, tem de formatar cada programação como uma expressão cron.

A tabela seguinte define os campos de uma expressão cron e os valores suportados para 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ó são eficazes para os meses relevantes

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

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

Além destes valores, todos os campos numa expressão cron também podem usar os seguintes carateres especiais.
Caráter especial Significado Exemplo
* qualquer Se o campo de dia do mês, o campo de mês e o campo de dia da semana estiverem todos definidos como *, o agendamento repete-se todos os dias.
- intervalo Se o campo day-of-the-week estiver definido como MON-FRI (ou 1-5), o agendamento repete-se todas as semanas de segunda a sexta-feira.
, lista Se o campo de mês estiver definido como 1-6,8-12, o agendamento repete-se todos os meses, exceto em julho.

Quando escreve uma expressão cron, tenha em consideração o seguinte:

  • O espaço em branco é usado para separar os campos de uma expressão cron. Lembre-se de não adicionar espaços em branco adicionais num campo que esteja a usar carateres especiais.
  • Quando especifica um dia da semana e um dia do mês (quando nenhum dos campos está definido como *), o horário usa a união destes valores e não a interseção. Por exemplo, o agendamento 0 8 1 * MON começa às 08:00 todas as segundas-feiras e no primeiro dia de cada mês. Esse horário não começa às 08:00 apenas nas segundas-feiras que também são o primeiro dia do mês.
fuso horário

O fuso horário IANA baseado na localização para a programação de início da operação e a programação de fim da operação. A base de dados de fusos horários IANA define uma lista de valores disponíveis. Este fuso horário é usado como referência apenas para os horários de início e de paragem das operações. Não é usado para a data de início nem para a data de fim. O fuso horário é opcional quando usa a CLI gcloud ou a API Compute Engine. Se for omitido, é usado o valor predefinido UTC.

Alguns fusos horários da IANA observam o horário de verão (DST), o que pode afetar as programações da sua instância. Os detalhes da mudança de hora, como quando começa e termina, bem como a quantidade de tempo que é ignorada e repetida, variam consoante cada fuso horário.

Data de início, data de fim

O período durante o qual a programação da instância está em vigor. Ambos os valores são opcionais. As operações repetem-se anualmente, a menos que especifique estes valores para limitar a programação a um único ano.

Quando criar programações de instâncias através da Google Cloud consola, selecione uma data, uma hora e um fuso horário através dos campos Data de início e Data de fim.

Quando cria programações de instâncias com a CLI gcloud ou a API Compute Engine, estes valores são formatados como uma data/hora RFC 3339:

  YYYY-MM-DDTHH:MM:SSOFFSET

Substitua o seguinte:

  • YYYY-MM-DD: uma data formatada como um ano de 4 dígitos, um mês de 2 dígitos e um dia do mês de 2 dígitos separados por hífenes.
  • HH:MM:SS: uma hora formatada como uma hora de 2 dígitos com o formato de 24 horas, um minuto de 2 dígitos e um segundo de 2 dígitos separados por dois pontos.
  • OFFSET: o fuso horário formatado como um desvio do Tempo Universal Coordenado (UTC). Por exemplo, a Hora Padrão do Pacífico (PST), que é 8 horas anterior à UTC, é escrita como -08:00. Em alternativa, para não usar nenhuma diferença (o fuso horário UTC), escreva Z.

Apresentar agendamentos de instâncias de fichas

Liste os agendamentos de instâncias para ver todos os agendamentos de instâncias existentes para o seu projeto.

Consola

  1. Na Google Cloud consola, aceda à página Instâncias de VM.

    Aceder às instâncias de VM

  2. Clique no separador Programações de instâncias na parte superior da página. É apresentada uma lista de todos os agendamentos de instâncias para este projeto.

gcloud

Para ver uma lista de todas as suas políticas de recursos, incluindo horários de instâncias, através da CLI gcloud, use o comando gcloud compute resource-policies list. Opcionalmente, para restringir os resultados a uma região específica, inclua a flag --filter.

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

Substitua o seguinte:

  • REGION: opcional: a região onde se encontram os horários das instâncias que quer listar.

REST

Para ver uma lista de todas as suas políticas de recursos, incluindo horários de instâncias, numa região específica através da API Compute Engine, faça um pedido através do método resourcePolicies.list:

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

Substitua o seguinte:

  • PROJECT: o seu ID do projeto.
  • REGION: a região onde se encontram os horários das instâncias que quer listar.

Descrever um agendamento de ocorrência

Descreva uma programação de instâncias para ver a respetiva descrição, horário, operações e uma lista de todas as instâncias de VM às quais está associada.

Consola

  1. Na Google Cloud consola, aceda à página Instâncias de VM.

    Aceder às instâncias de VM

  2. Clique no separador Programações de instâncias na parte superior da página. É apresentada uma lista de todos os agendamentos de instâncias para este projeto.

  3. Clique no nome da programação de instâncias que quer descrever. É apresentada a página Detalhes dos agendamentos de instâncias para esse agendamento.

gcloud

Para descrever uma programação de instâncias através da CLI gcloud, use o comando gcloud compute resource-policies describe:

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

Substitua o seguinte:

  • SCHEDULE_NAME: o nome da agenda de instâncias que quer descrever.
  • REGION: a região onde a programação da instância está localizada.

O resultado é semelhante ao seguinte:

...
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 um agendamento de instâncias através da API Compute Engine, faça um pedido através do método resourcePolicies.get:

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

Substitua o seguinte:

  • PROJECT: o seu ID do projeto.
  • REGION: a região onde o horário da instância está localizado.
  • SCHEDULE_NAME: o nome da agenda de instâncias que quer descrever.

O resultado é semelhante ao seguinte:

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

Eliminar um agendamento de instância

Elimine um agendamento de instâncias quando já não precisar dele removendo todas as instâncias de VM anexadas e eliminando a política de recursos.

Consola

  1. Na Google Cloud consola, aceda à página Instâncias de VM.

    Aceder às instâncias de VM

  2. Clique no separador Programações de instâncias na parte superior da página. É apresentada uma lista de todos os agendamentos de instâncias para este projeto.

  3. Selecione as caixas de verificação para os horários das instâncias que quer eliminar.

  4. Clique em Eliminar na parte superior da página. Esta ação abre uma nova caixa de diálogo para confirmar esta ação.

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

gcloud

  1. Se este horário de instâncias estiver anexado a alguma instância de VM, remova-as.
    1. Para verificar a que instâncias de VM esta agenda está anexada, descreva a agenda de instâncias.
    2. Para cada instância de VM à qual este agendamento está anexado, remova o agendamento da instância.
  2. Para eliminar um horário de instância através da CLI gcloud, use o comando gcloud compute resource-policies delete:

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

    Substitua o seguinte:

    • SCHEDULE_NAME: o nome da programação de instâncias que quer eliminar.
    • REGION: a região onde o horário da instância está localizado.

REST

  1. Se este horário de instâncias estiver anexado a alguma instância de VM, remova-as.
    1. Para verificar a que instâncias de VM esta agenda está anexada, descreva a agenda de instâncias.
    2. Para cada instância de VM à qual este agendamento está anexado, remova o agendamento da instância.
  2. Para eliminar um horário de instância através da API Compute Engine, faça um pedido através do método resourcePolicies.delete:

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

    Substitua o seguinte:

    • PROJECT: o seu ID do projeto.
    • REGION: a região onde o horário da instância está localizado.
    • SCHEDULE_NAME: o nome da programação de instâncias que quer eliminar.

Usar programações de instâncias com instâncias de VM

Para usar um agendamento de instâncias, anexe-o a uma ou mais instâncias de VM que quer que sigam esse agendamento. Pode anexar um agendamento de instâncias a uma instância de VM existente ou durante a criação de uma nova instância de VM. Para impedir que uma instância de VM siga um cronograma de instância anexado, remova o cronograma dessa instância de VM.

Anexar um horário da instância durante a criação de uma nova instância de VM

Para anexar um horário de instância a uma nova instância de VM, tem de criar a instância de VM na mesma região que o horário de instância que usa. Saiba como criar uma instância de VM.

Consola

Não pode anexar um agendamento de instância enquanto cria uma instância através da Google Cloud consola. Para usar a Google Cloud consola para anexar um horário de instância a uma nova instância de VM, crie uma instância de VM e, em seguida, anexe um horário à instância de VM.

gcloud

Para anexar uma programação de instância a uma instância de VM com a CLI gcloud, 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âncias 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 o seguinte:

  • VM_NAME: o nome da instância de VM à qual quer anexar um horário da instância.
  • SCHEDULE_NAME: o nome do horário da instância que quer anexar.
  • ZONE: a zona onde 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: a versão necessária de uma imagem pública. Por exemplo, --image debian-10-buster-v20200309.
    • IMAGE_FAMILY: uma família de imagens. Isto cria a VM a partir da imagem do SO mais recente e não descontinuada. Por exemplo, se especificar --image-family debian-10, o Compute Engine cria 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 um horário de instância a uma instância de VM através da API Compute Engine, faça um pedido com 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âncias anexada, faça o seguinte pedido:

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 o seguinte:

  • PROJECT_ID: o ID do projeto no qual criar a VM.
  • ZONE: a zona na qual criar a VM.
  • MACHINE_TYPE_ZONE: a zona que contém o tipo de máquina a usar para a nova VM.
  • MACHINE_TYPE: o tipo de máquina, predefinido ou personalizado, para a nova VM.
  • VM_NAME: o nome da nova MV.
  • 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 especificar family/debian-10 como a família de imagens, especifique debian-cloud como o projeto de imagens.
    • IMAGE ou IMAGE_FAMILY: especifique uma das seguintes opções:
    • IMAGE: a versão necessá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. Isto cria a VM a partir da imagem do SO mais recente e não descontinuada. Por exemplo, se especificar "sourceImage": "projects/debian-cloud/global/images/family/debian-10", o Compute Engine cria uma VM a partir da versão mais recente da imagem do SO na família de imagens do Debian 10.
  • REGION: a região onde o horário da instância está localizado.
  • SCHEDULE_NAME: o nome do horário da instância que quer anexar.

Pode verificar se a programação da instância é executada com êxito consultando os registos de auditoria da política de recursos da programação da instância e da instância de VM anexada. Pode ter de aguardar até 15 minutos após a hora agendada para cada operação.

Anexar um agendamento de instância a uma instância de VM existente

Pode anexar uma programação de instâncias a qualquer instância de VM existente localizada na mesma região que a programação de instâncias.

Consola

  1. Na Google Cloud consola, aceda à página Instâncias de VM.

    Aceder às instâncias de VM

  2. Clique no separador Programações de instâncias na parte superior da página. É apresentada uma lista de todos os agendamentos de instâncias para este projeto.

  3. Clique no nome da programação de instâncias que quer anexar. É apresentada a página Detalhes do agendamento da instância.

  4. Clique em Adicionar instâncias à agenda. O painel Adicionar instâncias à programação é aberto.

  5. Selecione a caixa de verificação de cada instância de VM à qual quer anexar esta agenda.

  6. Clique em Adicionar.

gcloud

Para anexar uma agenda de instâncias a uma instância de VM com a CLI gcloud, use o comando gcloud compute instances add-resource-policies:

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

Substitua o seguinte:

  • VM_NAME: o nome da instância de VM à qual quer anexar um horário da instância.
  • SCHEDULE_NAME: o nome do horário da instância que quer anexar.
  • ZONE: a zona onde a instância de VM está localizada.

REST

Para anexar um horário de instância a uma instância de VM através da API Compute Engine, faça um pedido com o método instances.addResourcePolicies:

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

Substitua o seguinte:

  • PROJECT: o seu ID do projeto.
  • ZONE: a zona onde se encontra a sua instância de VM.
  • VM_NAME: o nome da instância de VM à qual quer anexar um horário da instância.
  • REGION: a região onde o horário da instância está localizado.
  • SCHEDULE_NAME: o nome do horário da instância que quer anexar.

Pode verificar se a programação da instância é executada com êxito consultando os registos de auditoria da política de recursos da programação da instância e da instância de VM anexada. Pode ter de aguardar até 15 minutos após a hora agendada para cada operação.

Remover uma programação de instância de uma instância de VM

Para impedir que uma instância de VM siga um horário de instância, remova o horário de instância da instância de VM.

Consola

  1. Na Google Cloud consola, aceda à página Instâncias de VM.

    Aceder às instâncias de VM

  2. Clique no separador Programações de instâncias na parte superior da página. É apresentada uma lista de todos os agendamentos de instâncias para este projeto.

  3. Clique no nome do agendamento de instâncias que quer remover. É apresentada a página Detalhes do agendamento da instância.

  4. Na secção Instâncias anexadas, selecione a caixa de verificação de cada instância de VM que quer remover desta programação.

  5. Clique em Remover instâncias do horário. Esta ação abre uma nova caixa de diálogo para confirmar esta ação.

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

gcloud

Para remover um horário de instância de uma instância de VM com a CLI gcloud, use o comando gcloud compute instances remove-resource-policies:

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

Substitua o seguinte:

  • VM_NAME: o nome da instância de VM da qual quer remover um horário de instância.
  • SCHEDULE_NAME: o nome da programação de instâncias que quer remover.
  • ZONE: a zona onde a instância de VM está localizada.

REST

Para remover um horário de instância de uma instância de VM através da API Compute Engine, faça um pedido através do método instances.removeResourcePolicies:

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

Substitua o seguinte:

  • PROJECT: o seu ID do projeto.
  • ZONE: a zona onde a sua instância de VM está localizada.
  • VM_NAME: o nome da instância de VM da qual quer remover um horário de instância.
  • REGION: a região onde o horário da instância está localizado.
  • SCHEDULE_NAME: o nome da programação de instâncias que quer remover.

O que se segue?