управление виртуальными машинами azure с помощью terraform

#azure #autoscaling #terraform-provider-azure #azure-vm-scale-set

Вопрос:

Я создал набор масштабов виртуальной машины в azure с помощью terraform. Теперь я хочу, чтобы vmss увеличивалась в 2 часа ночи на два и уменьшалась в 3 часа ночи на два. Я не хочу полагаться на свою платформу CI/CD для масштабирования с помощью terraform, но использую встроенное автоматическое масштабирование azure.

Я использую azurerm_monitor_autoscale_setting для определения параметра автоматического масштабирования:

 resource "azurerm_monitor_autoscale_setting" "autoscale_default" {
  name                = "<thename>"
  resource_group_name = "<rgname>"
  location            = "<location>"
  target_resource_id  = azurerm_linux_virtual_machine_scale_set.<thevmss>.id

  profile {
    name = "<profilename>"

    capacity {
      default = 2
      minimum = 2
      maximum = 2
    }

    recurrence {
      timezone = "UTC"
      days     = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
      hours    = [3]
      minutes  = [0]
    }
  }

  profile {
    name = "<profilename2>"

    capacity {
      default = 4
      minimum = 4
      maximum = 4
    }

    recurrence {
      timezone = "UTC"
      days     = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
      hours    = [2]
      minutes  = [0]
    }
  }

  notification {
    email {
      send_to_subscription_administrator    = false
      send_to_subscription_co_administrator = false
      custom_emails                         = ["the@email"]
    }
  }
}
 

но, к сожалению, terraform не может создать настройку автоматического масштабирования:

 Error: Error creating AutoScale Setting "rulename" (Resource Group "rg-name"): insights.AutoscaleSettingsClient#CreateOrUpdate: Failure sending request: StatusCode=409 -- Original Error: autorest/azure: Service returned an error. Status=<nil> <nil>
 

Если я проверю журналы действий azure, я увижу, что уже есть один параметр автоматического масштабирования, созданный автоматически ( An autoscale setting already exists for target resource ), который мне нужно импортировать и изменить. Но это намного сложнее сделать с terraform, и мне интересно, есть ли более простой способ контролировать/изменять настройки автоматического масштабирования для моей виртуальной машины.

Я благодарен за любые подсказки и мне любопытно услышать, как вы управляете автоматическим масштабированием vmss с помощью terraform!

Комментарии:

1. существует обходной путь для удаления параметра автоматического масштабирования по умолчанию вручную на портале azure после создания виртуальной машины. после этого вы можете применить настройку автоматического масштабирования IaC. это работает в моем случае, но только до тех пор, пока vmss не будет удалена и воссоздана через IaC (что является обычным/важным случаем)…