使用terraform管理azure虚拟机

使用terraform管理azure虚拟机,azure,autoscaling,terraform-provider-azure,azure-vm-scale-set,Azure,Autoscaling,Terraform Provider Azure,Azure Vm Scale Set,我使用terraform在azure上创建了一个vm规模集。现在我想让虚拟机在凌晨2点放大2倍,在凌晨3点缩小2倍。我不想依靠我的CI/CD平台通过terraform进行扩展,而是使用内置的azure自动缩放 我使用azurerm\u监视器\u自动缩放\u设置来定义自动缩放设置: resource "azurerm_monitor_autoscale_setting" "autoscale_default" { name

我使用terraform在azure上创建了一个vm规模集。现在我想让虚拟机在凌晨2点放大2倍,在凌晨3点缩小2倍。我不想依靠我的CI/CD平台通过terraform进行扩展,而是使用内置的azure自动缩放

我使用
azurerm\u监视器\u自动缩放\u设置来定义自动缩放设置:

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"]
    }
  }
}
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>
resource“azurerm\u监视器\u自动缩放\u设置”“自动缩放\u默认值”{
name=“”
资源组名称=“”
location=“”
target\u resource\u id=azurerm\u linux\u virtual\u machine\u scale\u set..id
侧面图{
name=“”
容量{
默认值=2
最小值=2
最大值=2
}
复发{
时区=“UTC”
天数=[“周一”、“周二”、“周三”、“周四”、“周五”、“周六”、“周日”]
小时数=[3]
分钟=[0]
}
}
侧面图{
name=“”
容量{
默认值=4
最小值=4
最大值=4
}
复发{
时区=“UTC”
天数=[“周一”、“周二”、“周三”、“周四”、“周五”、“周六”、“周日”]
小时数=[2]
分钟=[0]
}
}
通知{
电子邮件{
发送给订阅管理员=错误
发送至订阅公司管理员=false
自定义_电子邮件=[”the@email"]
}
}
}
但不幸的是,terraform无法创建自动缩放设置:

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"]
    }
  }
}
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>
错误:创建自动缩放设置“rulename”(资源组“rg name”)时出错:insights.AutoscaleSettingsClient#CreateOrUpdate:发送请求失败:StatusCode=409--原始错误:autorest/azure:服务返回错误。状态=
如果我检查azure活动日志,我可以看到已经自动创建了一个自动缩放设置(
目标资源的自动缩放设置已经存在),我需要导入和修改该设置。但是使用terraform要复杂得多,我想知道是否有更简单的方法来控制/修改我的虚拟机的自动缩放设置

我很感谢您的任何提示,也很想知道您是如何使用terraform管理VMS自动缩放的

创建虚拟机后,可以在azure门户中手动删除默认的自动缩放设置。之后,您可以应用IaC自动缩放设置。这在我的情况下有效,但前提是不通过IaC删除和重新创建VMS(这是一个常规/重要的情况)。。。