Dimensionamento com base em horários

O ajuste de escala automático baseado em programação permite-lhe melhorar a disponibilidade das suas cargas de trabalho programando a capacidade antes da carga prevista. Se executar a sua carga de trabalho num grupo de instâncias geridas (GIG), pode agendar um número necessário de instâncias de máquinas virtuais (VMs) para padrões de carga recorrentes, bem como eventos únicos. Use programações de escalonamento se a sua carga de trabalho demorar muito tempo a inicializar e quiser aumentar a escala antes dos picos de carga previstos.

Este documento descreve como pode criar, listar, editar, desativar, reativar e eliminar programações de escalonamento para um MIG existente. Para mais informações sobre os MIGs e o dimensionamento automático, consulte os artigos Criar grupos de instâncias geridos e Dimensionamento automático de grupos de instâncias.

Antes de começar

  • Leia acerca dos princípios básicos do escalamento automático.
  • 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.

    Terraform

    Para usar os exemplos do Terraform nesta página num ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure as credenciais predefinidas da aplicação com as suas credenciais de utilizador.

      Instale a CLI Google Cloud.

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

      If you're using a local shell, then create local authentication credentials for your user account:

      gcloud auth application-default login

      You don't need to do this if you're using Cloud Shell.

      If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

    Para mais informações, consulte Set up authentication for a local development environment.

    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.

      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.

Limitações

Os horários de escalabilidade estão restritos pelas limitações para todos os escaladores automáticos e pelas seguintes limitações:

  • Pode ter até 128 programações de escalonamento por MIG. Para mitigar este limite, elimine as programações de escalabilidade com o estado OBSOLETE e que não planeia executar novamente.
  • A duração mínima para programações de ajuste de escala é de 5 minutos.

Criar um horário de escalonamento

Pode criar até 128 programações de escalabilidade por MIG. Para mais informações, consulte as Definições da programação de escalonamento.

As instruções seguintes explicam como criar uma programação de escalonamento para um MIG.

Consola

  1. Na Google Cloud consola, aceda à página Grupos de instâncias.

    Aceda a Grupos de instâncias

  2. Clique no nome de um MIG na lista.

  3. Clique em Edit.

  4. Clique em Tamanho do grupo e dimensionamento automático para expandir a secção.

  5. Se a configuração do ajuste de escala automático não existir, clique em Configurar ajuste de escala automático.

    Por predefinição, a configuração do dimensionamento automático adiciona um sinal com base na utilização da CPU. Se quiser dimensionar o MIG apenas com base em programações, elimine a métrica de utilização da CPU predefinida depois de adicionar as programações.

  6. Na secção Programações de ajuste automático, clique em Gerir.

  7. No painel Agendamentos de ajuste de escala, para cada agendamento de ajuste de escala que queira adicionar, faça o seguinte:

    1. Clique em Criar programação.
    2. No painel Criar programação de ajuste de escala, introduza um Nome.
    3. Opcional: introduza uma Descrição.
    4. Introduza o número de instâncias necessárias mínimas que este agendamento fornece quando está ativo.
    5. Para especificar a hora de início e a recorrência do seu horário de ajuste de escala, pode usar a interface predefinida. Também pode configurar uma programação com uma hora de início e uma recorrência mais complexas através da expressão cron. Siga estes passos consoante a forma como quer fazer a configuração:

      • Interface predefinida

        1. No campo Hora de início, introduza uma hora de início no formato HH:MM AM/PM, por exemplo, 09:00 AM.

        2. Clique no campo Fuso horário. Selecione um país e, de seguida, um fuso horário.

          Pode usar o campo Pesquisar por país para encontrar um país ou um fuso horário. Por exemplo, escreva Australia/australian central para encontrar os fusos horários da Austrália.

        3. Nos campos Duração e Unidade de tempo, introduza uma duração e selecione uma unidade de tempo correspondente.

        4. No campo Recorrência, selecione a frequência com que o agendamento se repete.

          Pode escolher Uma vez ou Todos os dias. Para especificar que a agenda se repete apenas em determinados dias, escolha Todas as semanas ou Todos os meses. Depois de selecionar uma destas opções, use a lista adicional para selecionar os dias da semana ou do mês em que a agenda começa.

      • Expressão cron

        1. Para ativar, clique no botão Usar expressão CRON.

        2. No campo Expressão CRON, introduza uma expressão CRON que especifique a hora de início e a recorrência.

        3. Clique no campo Fuso horário. Selecione um país e, de seguida, um fuso horário.

          Pode usar o campo Pesquisar por país para encontrar um país ou um fuso horário. Por exemplo, escreva Australia/australian central para encontrar os fusos horários da Austrália.

        4. Nos campos Duração e Unidade de tempo, introduza uma duração e selecione uma unidade de tempo correspondente.

    6. Clique em Guardar. O painel Programações de escalonamento apresenta a programação que criou.

  8. Quando terminar de criar os horários, clique em Concluído.

    Os horários são guardados e aplicados ao seu MIG.

  9. Clique em Guardar para sair da página de edição.

gcloud

Para adicionar uma agenda de escalonamento a um MIG que não tenha uma política de escalonamento automático existente, use o comando gcloud compute instance-groups managed set-autoscaling.

gcloud compute instance-groups managed set-autoscaling MIG_NAME \
    [--min-num-replicas=MIN_NUM_REPLICAS] \
    --max-num-replicas=MAX_NUM_REPLICAS \
    --set-schedule=SCHEDULE_NAME \
    --schedule-cron="CRON_EXPRESSION" \
    --schedule-duration-sec=DURATION \
    [--schedule-time-zone="TIME_ZONE"] \
    --schedule-min-required-replicas=MIN_REQ_REPLICAS \
    [--schedule-description="DESCRIPTION"] \
    [--zone=ZONE | --region=REGION]

Para adicionar um horário de escalabilidade a um GIG com uma política de escalabilidade automática existente, use o comando gcloud compute instance-groups managed update-autoscaling.

gcloud compute instance-groups managed update-autoscaling MIG_NAME \
    [--min-num-replicas=MIN_NUM_REPLICAS] \
    [--max-num-replicas=MAX_NUM_REPLICAS] \
    --set-schedule=SCHEDULE_NAME \
    --schedule-cron="CRON_EXPRESSION" \
    --schedule-duration-sec=DURATION \
    [--schedule-time-zone="TIME_ZONE"] \
    --schedule-min-required-replicas=MIN_REQ_REPLICAS \
    [--schedule-description="DESCRIPTION"] \
    [--zone=ZONE | --region=REGION]

Substitua o seguinte:

  • MIG_NAME: o nome de um MIG com uma política de escalabilidade automática existente.
  • MIN_NUM_REPLICAS: opcional: o número mínimo de instâncias necessárias para este MIG. A Google recomenda que defina este valor para o número mínimo de instâncias de que precisa quando não existe um horário de escalabilidade ativo. Para dimensionar o MIG para zero instâncias, defina este valor como 0 e certifique-se de que as condições necessárias são cumpridas.
  • MAX_NUM_REPLICAS: o número máximo de instâncias que podem ser fornecidas para este MIG. Opcional para um MIG com uma política de escalabilidade automática existente.
  • SCHEDULE_NAME: o nome da nova programação de ajuste de escala.
  • CRON_EXPRESSION: a hora de início e a recorrência desta programação formatadas como uma expressão cron.
  • DURATION: a duração, em segundos, durante a qual este horário está ativo.
  • TIME_ZONE: opcional: o fuso horário da IANA para a hora de início da programação. Por exemplo, Europe/Paris. O valor predefinido é UTC.
  • MIN_REQ_REPLICAS: o número de instâncias mínimas necessárias que este horário fornece quando está ativo.
  • DESCRIPTION: Opcional: uma descrição da nova programação de ajuste de escala.
  • ZONE ou REGION: opcional: a zona ou a região onde o GIG está localizado.

Pode criar programações que são executadas uma vez ou que se repetem periodicamente.

Agendamento com repetição

Este comando de exemplo cria um agendamento que se repete. Esta programação especifica que quer que o MIG contenha, pelo menos, 10 instâncias de VM todas as segundas, terças, quartas, quintas e sextas-feiras das 08:30 às 17:00, Tempo Universal Coordenado (UTC). Este comando também usa as flags --min-num-replicas e --max-num-replicas para atualizar o número mínimo de instâncias para 0 e o número máximo de instâncias para 30 para todos os sinais de escala automática do GIG selecionado. Este comando pressupõe que tem um MIG existente denominado example-mig com uma política de escalabilidade automática existente.

gcloud compute instance-groups managed update-autoscaling example-mig \
    --min-num-replicas=0 \
    --max-num-replicas=30 \
    --set-schedule=workday-capacity \
    --schedule-cron="30 8 * * Mon-Fri" \
    --schedule-duration-sec=30600 \
    --schedule-min-required-replicas=10 \
    --schedule-description="Have at least 10 VMs every Monday through Friday from 8:30 AM to 5 PM UTC"

Programação única

Este comando de exemplo cria uma programação que é executada uma vez. Esta programação especifica que quer que o MIG contenha, pelo menos, 30 instâncias de VM durante todo o dia 30 de janeiro de 2030 para o fuso horário America/New_York. Este comando pressupõe que tem um MIG existente denominado example-mig que está localizado em us-east1-b e tem uma política de escalabilidade automática existente.

gcloud compute instance-groups managed update-autoscaling example-mig \
    --set-schedule=example-onetime-schedule \
    --schedule-cron="0 0 30 1 * 2030" \
    --schedule-duration-sec=86400 \
    --schedule-time-zone="America/New_York" \
    --schedule-min-required-replicas=30 \
    --schedule-description="Schedule a minimum of 30 VMs all day for January 30, 2030" \
    --zone=us-east1-b

Terraform

Para adicionar um horário de escalonamento a um MIG, use o recurso google_compute_autoscaler.

resource "google_compute_autoscaler" "default" {
  provider = google-beta
  name     = "my-autoscaler"
  zone     = "us-central1-f"
  target   = google_compute_instance_group_manager.default.id

  autoscaling_policy {
    max_replicas    = 5
    min_replicas    = 1
    cooldown_period = 60

    scaling_schedules {
      name                  = "every-weekday-morning"
      description           = "Increase to 2 every weekday at 7AM for 12 hours."
      min_required_replicas = 2
      schedule              = "0 7 * * MON-FRI"
      time_zone             = "America/New_York"
      duration_sec          = 43200
    }
  }
}

Para saber como aplicar ou remover uma configuração do Terraform, consulte os comandos básicos do Terraform.

REST

Para criar um escalador automático com agendas de escalonamento para um GIG, use o método autoscalers.insert para um GIG zonal ou o método regionAutoscalers.insert para um GIG regional.

Faça a seguinte chamada para criar um horário para um MIG zonal que não tenha uma política de escalabilidade automática existente:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/autoscalers/

{
  "name": "AUTOSCALER_NAME",
  "target": "https://www.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instanceGroupManagers/MIG_NAME",
  "autoscalingPolicy": {
    "minNumReplicas": MIN_NUM_REPLICAS,
    "maxNumReplicas": MAX_NUM_REPLICAS,
    "scalingSchedules": {
      "SCHEDULE_NAME": {
        "minRequiredReplicas": MIN_REQ_REPLICAS,
        "schedule": "CRON_EXPRESSION",
        "timeZone": "TIME_ZONE",
        "durationSec": DURATION,
        "description": "DESCRIPTION"
      },
      ...
    }
  }
}

Para criar programações para um GIG que tenha uma política de escalabilidade automática existente, use o método autoscalers.patch para um GIG zonal ou o método regionAutoscalers.patch para um GIG regional.

Por exemplo, faça a seguinte chamada para criar um horário para um MIG zonal que tenha uma política de escalabilidade automática existente:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/autoscalers?autoscaler=AUTOSCALER_NAME

{
  "autoscalingPolicy": {
    "minNumReplicas": MIN_NUM_REPLICAS,
    "maxNumReplicas": MAX_NUM_REPLICAS,
    "scalingSchedules": {
      "SCHEDULE_NAME": {
        "minRequiredReplicas": MIN_REQ_REPLICAS,
        "schedule": "CRON_EXPRESSION",
        "timeZone": "TIME_ZONE",
        "durationSec": DURATION,
        "description": "DESCRIPTION"
      },
      ...
    }
  }
}

Substitua o seguinte:

  • PROJECT: o seu ID do projeto.
  • ZONE: a zona onde o seu MIG está localizado.
  • AUTOSCALER_NAME: o nome de um escalador automático existente. Normalmente, é igual ao nome do MIG.
  • MIN_NUM_REPLICAS: opcional: o número mínimo de instâncias necessárias para este MIG. A Google recomenda que defina este valor para o número mínimo de instâncias de que precisa quando não existe um horário de escalabilidade ativo. Para dimensionar o MIG para zero instâncias, defina este valor como 0 e certifique-se de que as condições necessárias são cumpridas.
  • MAX_NUM_REPLICAS: o número máximo de instâncias que podem ser fornecidas para este MIG. Opcional para um MIG com uma política de escalabilidade automática existente.
  • SCHEDULE_NAME: o nome da nova programação de ajuste de escala.
  • MIN_REQ_REPLICAS: o número mínimo de instâncias necessárias que este horário oferece quando está ativo.
  • CRON_EXPRESSION: a hora de início e a recorrência desta programação formatadas como uma expressão cron.
  • TIME_ZONE: opcional: o fuso horário da IANA para a hora de início da programação. Por exemplo, Europe/Paris. O valor predefinido é UTC.
  • DURATION: a duração, em segundos, durante a qual este horário está ativo.
  • DESCRIPTION: Opcional: uma descrição da nova programação de ajuste de escala.

Pode criar programações que são executadas uma vez ou que se repetem periodicamente.

Agendamento com repetição

Esta chamada API de exemplo cria um agendamento que se repete. Esta programação especifica que quer que um MIG zonal contenha, pelo menos, 10 instâncias de VM todas as segundas, terças, quartas, quintas e sextas-feiras das 08:30 às 17:00, Hora Universal Coordenada (UTC). Esta chamada API também usa os campos minNumReplicas e maxNumReplicas para atualizar o número mínimo de instâncias para 0 e o número máximo de instâncias para 30 para todos os sinais de dimensionamento automático do MIG selecionado. Esta chamada API pressupõe que tem um projeto existente denominado example-project com um MIG zonal localizado em us-east1-b e tem um escalador automático denominado example-autoscaler com uma política de escala automática existente.

PATCH https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-b/autoscalers?autoscaler=example-autoscaler

{
  "autoscalingPolicy": {
    "minNumReplicas": 0,
    "maxNumReplicas": 30,
    "scalingSchedules": {
      "workday-capacity": {
        "minRequiredReplicas": 10,
        "schedule": "30 8 * * Mon-Fri",
        "durationSec": 30600,
        "description": "Have at least 10 VMs every Monday through Friday from 8:30 AM to 5 PM UTC"
      }
    }
  }
}

Para usar este exemplo para um MIG regional, faça um pedido semelhante usando o método regionAutoscalers.patch e especifique uma região em vez de uma zona.

Programação única

Esta chamada API de exemplo cria um agendamento que é executado uma vez. Esta programação especifica que quer que um MIG zonal contenha, pelo menos, 30 instâncias de VM durante todo o dia 30 de janeiro de 2030 para o fuso horário America/New_York. Esta chamada API pressupõe que tem um projeto existente denominado example-project com um MIG zonal localizado em us-east1-b e tem um escalador automático denominado example-autoscaler com uma política de escala automática existente.

PATCH https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-b/autoscalers?autoscaler=example-autoscaler

{
  "autoscalingPolicy": {
    "scalingSchedules": {
      "example-onetime-schedule": {
        "minRequiredReplicas": 30,
        "schedule": "0 0 30 1 * 2030",
        "timeZone": "America/New_York",
        "durationSec": 86400,
        "description": "Schedule a minimum of 30 VMs all day for January 30, 2030"
      }
    }
  }
}

Para usar este exemplo para um MIG regional, faça um pedido semelhante usando o método regionAutoscalers.patch e especifique uma região em vez de uma zona.

Vários horários

Esta chamada API de exemplo usa o método autoscalers.patch para dois agendamentos, workday-capacity e january-30-2030-schedule, numa única chamada. Esta chamada da API pressupõe que tem um projeto existente denominado example-project com um MIG zonal localizado em us-east1-b e que tem um escalador automático denominado example-autoscaler com uma política de escalamento automático existente.

PATCH https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-b/autoscalers?autoscaler=example-autoscaler

{
  "autoscalingPolicy": {
    "scalingSchedules": {
      "workday-capacity": {
        "minRequiredReplicas": 10,
        "schedule": "30 8 * * Mon-Fri",
        "durationSec": 30600,
        "description": "Have at least 10 VMs every Monday through Friday from 8:30 AM to 5 PM UTC"
      },
      "january-30-2030-schedule": {
        "minRequiredReplicas": 30,
        "schedule": "0 0 30 1 * 2030",
        "timeZone": "America/New_York",
        "durationSec": 86400,
        "description": "Schedule a minimum of 30 VMs all day for January 30, 2030"
      }
    }
  }
}

Para usar este exemplo para um MIG regional, faça um pedido semelhante usando o método regionAutoscalers.patch e especifique uma região em vez de uma zona.

Depois de criar uma programação, pode ter de aguardar alguns minutos para ver as respetivas informações de estado.

Listar as programações de escalabilidade

Pode ver uma lista dos agendamentos de um MIG. A lista mostra as definições e as informações de estado de cada programação.

Consola

  1. Na Google Cloud consola, aceda à página Grupos de instâncias.

    Aceda a Grupos de instâncias

  2. Clique no nome de um MIG na lista.

    No separador Vista geral, a secção Escala automática mostra os sinais configurados no MIG.

  3. Junto às informações do sinal, passe o cursor do rato sobre o ícone e, de seguida, clique em Gerir.

    O painel Programações de ajuste de escala apresenta a lista das suas programações de ajuste de escala existentes.

gcloud

Para obter detalhes de um MIG, incluindo as configurações e os estados das respetivas programações de escalabilidade, use o comando gcloud compute instance-groups managed describe.

gcloud compute instance-groups managed describe MIG_NAME \
    [--zone=ZONE | --region=REGION]

Substitua o seguinte:

  • MIG_NAME: o nome de um MIG com uma política de escalabilidade automática existente.
  • ZONE ou REGION: opcional: a zona ou a região onde o GIG está localizado.

Todos os agendamentos de dimensionamento do MIG são apresentados no resultado, conforme mostrado no exemplo seguinte.

...
autoscalingPolicy:
  ...
  maxNumReplicas: 30
  minNumReplicas: 0
  ...
  scalingSchedules:
    example-onetime-schedule:
      description: Schedule a minimum of 30 VMs all day for January 30, 2030
      disabled: false
      durationSec: 86400
      minRequiredReplicas: 30
      schedule: 0 0 30 1 * 2030
      timeZone: America/New_York
    workday-capacity:
      description: Have at least 10 VMs every Monday through Friday from 8:30
        AM to 5 PM UTC
      disabled: false
      durationSec: 30600
      minRequiredReplicas: 10
      schedule: 30 8 * * Mon-Fri
      timeZone: UTC
...
scheduledScalingStatus:
    example-onetime-schedule:
        state: READY
        nextStartTime: '2030-01-30T00:00:00.000-05:00'
        lastStartTime: ''
    workday-capacity:
        state: READY
        nextStartTime: '2020-11-04T08:30:00.000-00:00'
        lastStartTime: '2020-11-03T08:30:00.000-00:00'
...

REST

Para obter detalhes de um escalador automático, incluindo as configurações e os estados das respetivas programações de escalonamento, use o método autoscalers.get para um MIG zonal ou o método regionAutoscalers.get para um MIG regional.

Por exemplo, faça a seguinte chamada para listar as programações de um MIG zonal que tenha uma política de escalamento automático existente:

GET https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/autoscalers?autoscaler=AUTOSCALER_NAME

Substitua o seguinte:

  • PROJECT: o seu ID do projeto.
  • ZONE: a zona onde o seu MIG está localizado.
  • AUTOSCALER_NAME: o nome de um escalador automático existente. Normalmente, é igual ao nome do MIG.

Todos os agendamentos de dimensionamento do MIG são apresentados no resultado, conforme mostrado no exemplo seguinte.

{
  ...
  "autoscalingPolicy": {
    ...
    "minNumReplicas": 0,
    "maxNumReplicas": 30,
    ...
    "scalingSchedules": {
      "example-onetime-schedule": {
        "minRequiredReplicas": 30,
        "schedule": "0 0 30 1 * 2030",
        "timeZone": "America/New_York",
        "durationSec": 86400,
        "description": "Schedule a minimum of 30 VMs all day for January 30, 2030",
        "disabled": false
      },
      "workday-capacity": {
        "minRequiredReplicas": 10,
        "schedule": "30 8 * * Mon-Fri",
        "timeZone": "",
        "durationSec": 30600,
        "description": "Have at least 10 VMs every Monday through Friday from 8:30 AM to 5 PM UTC",
        "disabled": false
      },
      ...
    }
  },
  "scheduledScalingStatus": {
    "example-onetime-schedule": {
      "state": "READY",
      "nextStartTime": "2030-01-30T00:00:00.000-05:00",
      "lastStartTime": ''
    },
    "workday-capacity": {
      "state": "READY",
      "nextStartTime": "2020-11-04T08:30:00.000",
      "lastStartTime": "2020-11-03T08:30:00.000"
    },
    ...
  },
...
}

Editar um horário de ajuste de escala

Pode editar uma agenda de escalonamento existente para alterar qualquer uma das respetivas definições , exceto o nome da agenda. Também pode desativar ou reativar um agendamento de ajuste de escala.

Consola

  1. Na Google Cloud consola, aceda à página Grupos de instâncias.

    Aceda a Grupos de instâncias

  2. Clique no nome de um MIG na lista.

  3. Clique em Edit.

  4. Clique em Tamanho do grupo e dimensionamento automático para expandir a secção.

  5. Na secção Programações de ajuste automático, clique em Gerir.

    O painel Programações de ajuste de escala apresenta a lista das suas programações de ajuste de escala existentes.

  6. Selecione a caixa de verificação do horário de escalamento que quer editar.

  7. Na parte superior do painel Programações de escalonamento, clique em Editar.

  8. No painel Editar programação de ajuste de escala, modifique os campos que quer alterar. Para mais informações sobre cada campo, consulte o artigo Criar uma programação de ajuste de escala.

  9. Quando terminar, clique em Guardar.

    Pode ter de aguardar alguns minutos antes de as alterações entrarem em vigor. Pode monitorizar o estado das suas programações clicando em Atualizar na parte superior do painel Programações de escalonamento.

  10. Feche o painel Programações de ajuste de escala clicando em Concluído.

    As alterações às programações são guardadas e aplicadas ao seu MIG.

  11. Clique em Guardar para sair da página de edição.

gcloud

Para atualizar um horário de escalonamento existente, use o comando gcloud compute instance-groups managed update-autoscaling. Use a flag --update-schedule para indicar o nome da agenda a atualizar. Inclua as outras flags conforme necessário para as suas alterações.

gcloud compute instance-groups managed update-autoscaling MIG_NAME \
    --update-schedule=SCHEDULE_NAME \
    [--schedule-cron="CRON_EXPRESSION"] \
    [--schedule-duration-sec=DURATION] \
    [--schedule-time-zone="TIME_ZONE"] \
    [--schedule-min-required-replicas=MIN_REQ_REPLICAS] \
    [--schedule-description="DESCRIPTION"] \
    [--zone=ZONE | --region=REGION]

Substitua o seguinte:

  • MIG_NAME: o nome de um MIG com um horário de escalabilidade existente.
  • SCHEDULE_NAME: o nome do horário de ajuste de escala existente.
  • CRON_EXPRESSION: opcional: a nova hora de início e a recorrência desta programação formatadas como uma expressão cron.
  • DURATION: opcional: a nova duração, em segundos, durante a qual este horário está ativo.
  • TIME_ZONE: opcional: o novo fuso horário da IANA para a hora de início da programação. Por exemplo, Europe/Paris. O valor predefinido é UTC.
  • MIN_REQ_REPLICAS: opcional: o novo número de instâncias mínimas necessárias que este horário fornece quando está ativo.
  • DESCRIPTION: Opcional: uma nova descrição da agenda de escalonamento.
  • ZONE ou REGION: opcional: a zona ou a região onde o GIG está localizado.

REST

Para atualizar os agendamentos de escalabilidade existentes para um MIG, use o método autoscalers.patch para um MIG zonal ou o método regionAutoscalers.patch para um MIG regional.

Por exemplo, faça a seguinte chamada para editar uma programação para um MIG zonal que tenha uma política de escalamento automático existente:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/autoscalers?autoscaler=AUTOSCALER_NAME

{
  "autoscalingPolicy": {
    "scalingSchedules": {
      "SCHEDULE_NAME": {
        "minRequiredReplicas": MIN_REQ_REPLICAS,
        "schedule": "CRON_EXPRESSION",
        "timeZone": "TIME_ZONE",
        "durationSec": DURATION,
        "description": "DESCRIPTION"
      },
      ...
    }
  }
}

Substitua o seguinte:

  • PROJECT: o seu ID do projeto.
  • ZONE: a zona onde o seu MIG está localizado.
  • AUTOSCALER_NAME: o nome de um escalador automático existente. Normalmente, é igual ao nome do MIG.
  • SCHEDULE_NAME: o nome do horário de ajuste de escala existente.
  • MIN_REQ_REPLICAS: opcional: o novo número de instâncias mínimas necessárias que este horário fornece quando está ativo.
  • CRON_EXPRESSION: opcional: a nova hora de início e a recorrência desta programação formatadas como uma expressão cron.
  • TIME_ZONE: opcional: o novo fuso horário da IANA para a hora de início da programação. Por exemplo, Europe/Paris. O valor predefinido é UTC.
  • DURATION: opcional: a nova duração, em segundos, durante a qual este horário está ativo.
  • DESCRIPTION: Opcional: uma nova descrição da agenda de escalonamento.

Desativar e reativar uma programação de escalabilidade

Os horários de escalonamento estão ativados por predefinição. Desative um horário se quiser impedir que um horário esteja ativo, mas quiser guardar a respetiva configuração. Reative um horário desativado quando quiser usá-lo novamente.

Se não precisar de armazenar o agendamento ou tiver atingido o limite de 128 agendamentos para este MIG, elimine o agendamento. Se quiser desativar o ajuste de escala automático para um MIG, desative o ajuste de escala automático.

Consola

  1. Na Google Cloud consola, aceda à página Grupos de instâncias.

    Aceda a Grupos de instâncias

  2. Clique no nome de um MIG na lista.

  3. Clique em Edit.

  4. Clique em Tamanho do grupo e dimensionamento automático para expandir a secção.

  5. Na secção Programações de ajuste automático, clique em Gerir.

    O painel Programações de ajuste de escala apresenta a lista das suas programações de ajuste de escala existentes.

    1. Selecione as caixas de verificação para os horários de ajuste de escala que quer desativar ou ativar.

      • Para desativar as programações selecionadas:

        1. Na parte superior do painel Programações de escalonamento, clique em Desativar.
        2. Na caixa de diálogo Desativar programações, clique em Desativar.
      • Para ativar os horários selecionados:

        1. Na parte superior do painel Programações de escalonamento, clique em Ativar.
        2. Na caixa de diálogo Ativar programações, clique em Ativar.

      Pode ter de aguardar alguns minutos antes de as alterações entrarem em vigor. Pode monitorizar o estado das suas programações clicando em Atualizar na parte superior do painel Programações de escalonamento.

    2. Feche o painel Programações de ajuste de escala clicando em Concluído.

      As alterações às programações são guardadas e aplicadas ao seu MIG.

  6. Clique em Guardar para sair da página de edição.

gcloud

Para desativar ou reativar uma programação de escalabilidade, use o comando gcloud compute instance-groups managed update-autoscaling.

Desativar uma programação de escalabilidade

Para desativar uma programação de escalabilidade, use a flag --disable-schedule.

gcloud compute instance-groups managed update-autoscaling MIG_NAME \
    --disable-schedule=SCHEDULE_NAME \
    [--zone=ZONE | --region=REGION]

Substitua o seguinte:

  • MIG_NAME: o nome de um MIG com um horário de escalabilidade existente.
  • SCHEDULE_NAME: o nome do horário de escalonamento que quer desativar.
  • ZONE ou REGION: opcional: a zona ou a região onde o GIG está localizado.

Reativar uma programação de escalabilidade

Para reativar uma programação de escalonamento, use a flag --enable-schedule.

gcloud compute instance-groups managed update-autoscaling MIG_NAME \
    --enable-schedule=SCHEDULE_NAME \
    [--zone=ZONE | --region=REGION]

Substitua o seguinte:

  • MIG_NAME: o nome de um MIG com um horário de escalabilidade existente.
  • SCHEDULE_NAME: o nome do horário de escalonamento que quer reativar.
  • ZONE ou REGION: opcional: a zona ou a região onde o GIG está localizado.

REST

Para desativar ou reativar programações de escalabilidade para um GIG, use o método autoscalers.patch para um GIG zonal ou o método regionAutoscalers.patch para um GIG regional.

Desativar programações de escalabilidade

Para cada programação de escalabilidade que quer desativar, defina o campo disabled como true. Por exemplo, faça a seguinte chamada para desativar um horário para um MIG zonal que tenha uma política de escalamento automático existente:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/autoscalers?autoscaler=AUTOSCALER_NAME

{
  "autoscalingPolicy": {
    "scalingSchedules": {
      "SCHEDULE_NAME": {
        "disabled": true
      },
      ...
    }
  }
}

Substitua o seguinte:

  • PROJECT: o seu ID do projeto.
  • ZONE: a zona onde o seu MIG está localizado.
  • AUTOSCALER_NAME: o nome de um escalador automático existente. Normalmente, é igual ao nome do MIG.
  • SCHEDULE_NAME: o nome do horário de escalonamento que quer desativar.

Reativar programações de escalabilidade

Para cada programação de ajuste de escala que quer reativar, defina o campo disabled como false. Por exemplo, faça a seguinte chamada para reativar uma programação para um MIG zonal que tenha uma política de escalamento automático existente:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/autoscalers?autoscaler=AUTOSCALER_NAME

{
  "autoscalingPolicy": {
    "scalingSchedules": {
      "SCHEDULE_NAME": {
        "disabled": false
      },
      ...
    }
  }
}

Substitua o seguinte:

  • PROJECT: o seu ID do projeto.
  • ZONE: a zona onde o seu MIG está localizado.
  • AUTOSCALER_NAME: o nome de um escalador automático existente. Normalmente, é igual ao nome do MIG.
  • SCHEDULE_NAME: o nome do horário de escalonamento que quer reativar.

Eliminar uma programação de escalabilidade

Remova programações de escalabilidade de um MIG eliminando-as. Elimine os horários de que já não precisa, como horários com um OBSOLETE estado.

Uma política de dimensionamento automático tem de ter sempre, pelo menos, um sinal de dimensionamento. Se não existir outro sinal de ajuste de escala automático, não pode eliminar todos os horários de ajuste de escala sem eliminar toda a política de ajuste de escala automático. Se quiser eliminar todos os horários de ajuste de escala, mas manter a política de ajuste de escala automático, tem de adicionar, pelo menos, um sinal de ajuste de escala antes de eliminar todos os horários.

Se quiser impedir que um horário fique ativo e guardá-lo para utilização futura, desative o horário. Se quiser eliminar a configuração do redimensionamento automático para um MIG, elimine o redimensionador automático.

Consola

  1. Na Google Cloud consola, aceda à página Grupos de instâncias.

    Aceda a Grupos de instâncias

  2. Clique no nome de um MIG na lista.

  3. Clique em Edit.

  4. Clique em Tamanho do grupo e dimensionamento automático para expandir a secção.

  5. Na secção Programações de ajuste automático, clique em Gerir.

    O painel Programações de ajuste de escala apresenta a lista das suas programações de ajuste de escala existentes.

    1. Selecione as caixas de verificação para os horários de ajuste de escala que quer eliminar.
    2. Na parte superior do painel Programações de ajuste de escala, clique em Eliminar.
    3. Na caixa de diálogo Eliminar programações, escreva delete e, de seguida, clique em Eliminar.

      Pode ter de aguardar alguns minutos antes de as alterações entrarem em vigor. Pode monitorizar o estado das suas programações clicando em Atualizar na parte superior do painel Programações de escalonamento.

    4. Feche o painel Programações de ajuste de escala clicando em Concluído.

      As alterações às programações são guardadas e aplicadas ao seu MIG.

  6. Clique em Guardar para sair da página de edição.

gcloud

Para eliminar um horário de escalonamento, use o comando gcloud compute instance-groups managed update-autoscaling com a flag --remove-schedule.

gcloud compute instance-groups managed update-autoscaling MIG_NAME \
    --remove-schedule=SCHEDULE_NAME \
    [--zone=ZONE | --region=REGION]

Substitua o seguinte:

  • MIG_NAME: o nome de um MIG com um horário de escalabilidade existente.
  • SCHEDULE_NAME: o nome do horário de ajuste de escala que quer eliminar.
  • ZONE ou REGION: opcional: a zona ou a região onde o GIG está localizado.

REST

Para eliminar programações de dimensionamento de um GIG, use o método autoscalers.patch para um GIG zonal ou o método regionAutoscalers.patch para um GIG regional. Para cada programação de escalabilidade que quer eliminar, defina a configuração da programação como null

Por exemplo, faça a seguinte chamada para eliminar um horário de um MIG zonal que tenha uma política de escalamento automático existente:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/autoscalers?autoscaler=AUTOSCALER_NAME

{
  "autoscalingPolicy": {
    "scalingSchedules": {
      "SCHEDULE_NAME": null
      ...
    }
  }
}

Substitua o seguinte:

  • PROJECT: o seu ID do projeto.
  • ZONE: a zona onde o seu MIG está localizado.
  • AUTOSCALER_NAME: o nome de um escalador automático existente. Normalmente, é igual ao nome do MIG.
  • SCHEDULE_NAME: o nome do horário de ajuste de escala que quer eliminar.

Conceitos

Esta secção descreve os conceitos relacionados com a criação e a utilização de programações de ajuste de escala, incluindo as definições de programação e os detalhes sobre o respetivo funcionamento.

Definições da agenda de escalonamento

Quando cria e modifica as programações de escalonamento para um MIG, cada programação de escalonamento contém as seguintes definições:

  • Número mínimo de instâncias necessárias: o número de VMs necessárias no MIG quando este agendamento de escalabilidade está ativo.

    Quando este horário está ativo, o MIG tem, pelo menos, este número de VMs, mas pode ter mais, dependendo de outras definições de escalabilidade automática. Além disso, o tamanho do MIG é sempre restrito pelo número mínimo e máximo de instâncias configuradas nas definições de escala automática do MIG.

  • Fuso horário: o fuso horário IANA baseado na localização para interpretar a hora de início da programação.

    Uma lista de valores disponíveis é definida pela base de dados de fusos horários da IANA. Por exemplo, Europe/Paris. Se não for indicado nenhum fuso horário, é usado o UTC por predefinição. Alguns fusos horários da IANA respeitam a mudança da hora. Para saber como a hora de verão afeta as programações de ajuste de escala, consulte o artigo Hora de verão.

  • Duração: o período durante o qual quer que a programação de escalonamento esteja ativa.

    O horário de ajuste de escala está ativo a partir da respetiva hora de início durante a duração configurada. A duração mínima é de 5 minutos. Durante este período, o escalador automático dimensiona o MIG para ter, pelo menos, tantas VMs quanto as definidas pelas instâncias necessárias do horário. Após a duração especificada, se a capacidade atual já não for necessária, o escalador automático começa a remover instâncias de VM após um período de estabilização de 10 minutos predefinido e seguindo quaisquer controlos de redução de escala configurados.

    As programações de escalabilidade são bidirecionais. As VMs são removidas na hora de paragem que especificar e o tamanho do grupo é reduzido ao tamanho mínimo do grupo que definir, a menos que tenha especificado outros sinais de dimensionamento automático.

Quando usar a CLI Google Cloud ou a REST, tem de configurar a hora de início e a recorrência de uma programação de escalonamento através de uma expressão cron. No entanto, quando usa a consola, pode configurar a hora de início e a recorrência de uma programação através de uma expressão cron ou das seguintes definições: Google Cloud

  • Hora de início: a hora do dia em que quer que o agendamento de ajuste de escala fique ativo.

    Na hora de início, o agendamento de escalonamento começa a criar VMs sempre que o tamanho do MIG for inferior às instâncias necessárias do agendamento. Defina a hora de início para permitir tempo suficiente para que as novas VMs sejam iniciadas e inicializadas. Por exemplo, se a sua carga de trabalho demorar 10 minutos desde a criação da VM até começar a publicar, defina a hora de início 10 minutos antes da hora em que precisa que as VMs estejam prontas.

  • Recorrência: se e com que frequência o cronograma de ajuste se repete, conforme definido pelas seguintes opções:

    • Uma vez: uma programação única que começa apenas na data selecionada.
    • Todos os dias: um horário repetitivo que começa todos os dias.
    • Todas as semanas: um horário repetitivo que começa todas as semanas nos dias da semana selecionados, por exemplo, todas as segundas-feiras a sextas-feiras.
    • Todos os meses: um agendamento repetido que começa todos os meses nos dias selecionados do mês, por exemplo, no primeiro dia de cada mês. Os últimos dias do mês (do dia 29 ao dia 31) só são eficazes durante os meses em que esses dias ocorrem.

Expressões cron

A hora de início e a recorrência de uma programação de escalamento podem ser configuradas através de uma expressão cron. O Cron é um agendador de tarefas baseado no tempo usado originalmente em sistemas operativos informáticos semelhantes ao Unix.

Sintaxe

Uma expressão cron é uma string composta por cinco ou seis campos separados por espaços em branco. A tabela seguinte define os campos de uma expressão cron e os valores possíveis para cada campo.

Minuto Hora Dia do mês Mês Dia da semana Ano (opcional)
0-59 0-23 1-31 1-12 (jan-dez)

onde 1=Jan, 2=Feb, ... 12=Dec
0-6 (dom-sáb) ou 1-7 (seg-dom)

onde 0=Sun, 1=Mon, ... 6=Sat, 7=Sun
2000-2036

ou todos os anos (*) se não for indicado

Além de usar estes valores, todos os campos numa expressão cron também podem usar carateres especiais:

Caráter especial Significado Exemplo
* qualquer Se o campo do dia do mês, o campo do dia da semana e o campo do ano (se incluído) estiverem definidos como *, o horário começa todos os dias.
- intervalo Se o campo do dia da semana estiver definido como 1-5 ou Mon-Fri, o horário começa todas as semanas de segunda a sexta-feira.
, lista Se o campo de mês estiver definido como 5,7,9 ou May,Jul,Sep, a programação começa todos os meses de maio, julho e setembro.
/ passo Se o campo do mês estiver definido como */3, o agendamento começa durante o primeiro mês e a cada 3 meses a partir daí: janeiro, abril, julho e outubro.

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 agendamento não começa às 08:00 apenas nas segundas-feiras que também são o primeiro dia do mês.
  • Pode usar zero ou mais carateres especiais em cada campo de uma expressão cron. Por exemplo, se quiser que uma programação comece todos os meses, exceto em maio, pode definir o campo de mês como 1-4,6-12 (uma lista de dois intervalos sem espaços).
  • Quando usa intervalos (-), não pode usar 0-7 nem Sun-Sun para o campo do dia da semana. Para especificar todos os dias da semana, use *, 0-6, 1-7, Sun-Sat ou Mon-Sun.
  • Quando usar passos (/), lembre-se de que as expressões cron não têm estado, pelo que os passos podem, por vezes, ser irregulares. Por exemplo, se quiser que um horário seja executado a cada 6 horas, pode definir o campo de horas como */6, que se comporta da mesma forma que listar todos os múltiplos válidos de 6 (0,6,12,18). Os passos são uniformes porque as 24 horas são divididas em partes de 6 horas. No entanto, se definir o campo de horas como */7, a programação nem sempre é iniciada em intervalos de 7 horas. Em alternativa, */7 tem o mesmo comportamento que listar todos os múltiplos válidos de 7 (0,7,14,21), o que significa que a programação pode começar entre as 00:00, as 07:00, as 14:00 e as 21:00.

Horários repetidos vs. horários únicos

Consoante a forma como escreve a expressão cron, a sua programação pode ser executada uma vez ou repetir-se periodicamente. Para criar uma programação que seja executada apenas uma vez, tem de especificar o campo do ano. Por exemplo, a expressão cron 0 0 30 1 * 2030 configura uma programação para começar apenas uma vez, à meia-noite de 30 de janeiro de 2030. Para criar um horário que se repete, use carateres especiais para descrever quando esse horário se deve repetir. Por exemplo, a expressão cron 30 8 * * Mon-Fri configura um agendamento para começar às 08:30 todas as segundas, terças, quartas, quintas e sextas-feiras.

Informações de estado da programação

Liste os seus horários de ajuste de escala para ver o respetivo estado. Uma programação de ajuste de escala tem as seguintes informações de estado:

  • Estado (state): o estado atual da programação de ajuste de escala, representado por um dos seguintes estados:
    • Pronto (READY): este horário está pronto, mas ainda não está ativo. O escalador automático está a aguardar a próxima ocorrência deste horário.
    • Ativo (ACTIVE): esta programação está ativa. O escalador automático está a tentar fornecer a este MIG, pelo menos, as instâncias necessárias que este agendamento especifica.
    • Obsoleto (OBSOLETE): esta programação expirou e não vai voltar a estar ativa. O escalador automático está a ignorar este agendamento porque não existem ocorrências futuras.
    • Desativado (DISABLED): este agendamento não pode estar ativo porque foi desativado manualmente. O escalador automático está a ignorar este horário até ser reativado.
  • Última ocorrência (lastStartTime): a data/hora da última vez que este horário de escalonamento ficou ativo. Esta é a data e a hora reais da última ativação. Por exemplo, se tiver um horário de ajuste de escala desativado com uma recorrência diária, uma hora de início às 10:00 e uma duração de 2 horas, e reativar o horário hoje às 11:00, a hora de início do ajuste de escala é hoje às 11:00.lastStartTime
  • Próxima ocorrência (nextStartTime): a data/hora da próxima vez que esta agenda vai ficar ativa.

Horários sobrepostos

Consoante a hora de início, a recorrência, a duração e o fuso horário, dois ou mais agendamentos de ajuste de escala podem sobrepor-se. Quando mais do que um agendamento está ativo, o dimensionamento automático usa o maior número de instâncias de VMs necessárias de todos os agendamentos de dimensionamento ativos. Isto ajuda a garantir que existe sempre capacidade suficiente para satisfazer as necessidades de qualquer programação ativa. Por exemplo, se tiver um horário que se repete todos os dias das 08:00 às 10:00 e que requer, pelo menos, 10 VMs, mas também tiver um horário único para todo o dia que requer, pelo menos, 20 VMs, o escalador automático dimensiona o MIG para, pelo menos, 20 VMs nesse dia. Isto é útil quando tem requisitos de capacidade regulares e recorrentes, mas, por vezes, precisa de mais para processar eventos únicos. Este comportamento permite-lhe agendar capacidade sem se preocupar com a substituição por outros agendamentos com requisitos de VM mais pequenos.

Além disso, um escalador automático fornece sempre o maior número de instâncias de VM necessárias por qualquer sinal de escalamento automático ativo. Para mais informações, consulte o artigo Usar uma política de dimensionamento automático com vários sinais.

Horário de verão

Os detalhes da mudança da hora variam de acordo com o fuso horário IANA baseado na localização da sua programação de ajuste de lances. Se o fuso horário do seu horário respeitar a mudança da hora, a hora de início do horário é ajustada automaticamente para permanecer sincronizada com a hora da localização selecionada. Por exemplo, se criar uma programação de ajuste de lances que comece todos os dias às 07:00 para o fuso horário America/New_York, esta programação começa sempre que forem 07:00 em Nova Iorque, usando a Hora de Verão Oriental ou a Hora Padrão Oriental, conforme aplicável.

Os horários de escalonamento são sempre executados durante todo o período que configurar, mas podem ter horas de início e fim ligeiramente diferentes nos dias em que a observação da hora de verão muda. Isto acontece porque as mudanças da hora de verão têm períodos de transição, um período que é ignorado no primeiro dia da hora de verão e que ocorre duas vezes no último dia da hora de verão. Por exemplo, se a hora de verão para o seu fuso horário começar às 02:00 e tiver uma transição de 1 hora, o relógio muda das 01:59:59 para as 03:00, pelo que o período das 02:00 às 02:59:59 é ignorado. Se o horário de verão para esse fuso horário terminar às 02:00, a hora muda das 02:59:59 para as 02:00, pelo que o período das 02:00 às 02:59:59 é repetido. As seguintes declarações partem do princípio de que o fuso horário da sua programação usa uma transição de horário de verão de 1 hora.

No primeiro dia da mudança de hora (quando é ignorada 1 hora), os horários de ajuste de escala têm as seguintes alterações:

  • Os agendamentos que estão ativos durante a hora ignorada continuam a ser executados durante todo o período, mas, para compensar a hora ignorada, terminam 1 hora mais tarde do que a respetiva hora de fim nos dias sem transições de horário de verão. Normalmente, a hora de fim de uma programação é a soma da hora de início e da duração da programação. No entanto, se a mudança de hora saltar 1 hora enquanto um agendamento estiver ativo e a duração e a hora de início permanecerem constantes, a hora de fim desse agendamento é 1 hora superior à soma da hora de início e da duração do agendamento.
  • Os agendamentos configurados para começar durante a hora ignorada também começam 1 hora mais tarde do que a respetiva hora de início nos dias sem transições de HVD.

No último dia da MDH (quando 1 hora é repetida), os horários de escalonamento têm as seguintes alterações:

  • Os agendamentos que estão ativos durante a hora repetida continuam a ser executados durante toda a respetiva duração, mas, para compensar a hora repetida, estes agendamentos terminam 1 hora antes da respetiva hora de fim nos dias sem transições de HVD. Normalmente, a hora de fim de uma programação é a soma da hora de início e da duração da programação. No entanto, se a mudança da hora repetir-se durante 1 hora enquanto uma programação estiver ativa e a duração e a hora de início permanecerem constantes, a hora de fim dessa programação é 1 hora inferior à soma da hora de início e da duração da programação.
  • Os agendamentos configurados para serem iniciados durante o período de transição são iniciados na hora configurada, mas não são reiniciados durante a segunda ocorrência repetida da hora de início.

A maioria dos fusos horários que respeitam a mudança da hora usam um período de transição de 1 hora. No entanto, se o fuso horário da sua programação usar um período de transição diferente, como o fuso horário Australia/Lord_Howe, que usa transições de 30 minutos, pode esperar o mesmo comportamento. Basta substituir 1 hora pela hora de transição do HVD relevante.

O que se segue?