Azure Terraform基于每秒磁盘写入操作或磁盘写入字节创建自动缩放VM规则设置

Azure Terraform基于每秒磁盘写入操作或磁盘写入字节创建自动缩放VM规则设置,azure,terraform,terraform-provider-azure,azure-vm-scale-set,Azure,Terraform,Terraform Provider Azure,Azure Vm Scale Set,基于,我正在尝试创建terraform azurerm_monitor_autoscale_设置规则,该规则基于每秒磁盘写入操作或磁盘写入字节来增加/减少VM节点。公制触发器如下所示: rule { metric_trigger { operator = "GreaterThan" threshold = 50 time_grain = "PT1M"

基于,我正在尝试创建terraform azurerm_monitor_autoscale_设置规则,该规则基于每秒磁盘写入操作或磁盘写入字节来增加/减少VM节点。公制触发器如下所示:

rule {
     metric_trigger {
            operator           = "GreaterThan"
            threshold          = 50
            time_grain         = "PT1M"
            statistic          = "Average"
            time_window        = "PT5M"
            metric_name        = "Disk Write Operations/Sec"
            time_aggregation   = "Average"
    }
}
然而,我认为这不是正确的语法,因为一旦应用terraform脚本,它就永远不会创建这个规则。另一方面,用CPU百分比替换规则可以很好地工作。是否有人创建了除CPU百分比以外的任何指标?你能帮我找出在terraform中做这件事的正确方法吗?

你缺少度量资源id。你可以试试下面的例子,这对我来说很有效

resource "azurerm_monitor_autoscale_setting" "test" {
  name                = "myAutoscaleSetting"
  resource_group_name = "${azurerm_resource_group.test.name}"
  location            = "${azurerm_resource_group.test.location}"
  target_resource_id  = "${azurerm_virtual_machine_scale_set.test.id}"

  profile {
    name = "defaultProfile"

    capacity {
      default = 1
      minimum = 1
      maximum = 10
    }

    rule {
      metric_trigger {
        metric_name        = "Disk Write Operations/Sec"
        metric_resource_id = "${azurerm_virtual_machine_scale_set.test.id}"
        time_grain         = "PT1M"
        statistic          = "Average"
        time_window        = "PT5M"
        time_aggregation   = "Average"
        operator           = "GreaterThan"
        threshold          = 75
      }

      scale_action {
        direction = "Increase"
        type      = "ChangeCount"
        value     = "1"
        cooldown  = "PT1M"
      }
    }

    rule {
      metric_trigger {
        metric_name        = "Disk Write Operations/Sec"
        metric_resource_id = "${azurerm_virtual_machine_scale_set.test.id}"
        time_grain         = "PT1M"
        statistic          = "Average"
        time_window        = "PT5M"
        time_aggregation   = "Average"
        operator           = "LessThan"
        threshold          = 25
      }

      scale_action {
        direction = "Decrease"
        type      = "ChangeCount"
        value     = "1"
        cooldown  = "PT1M"
      }
    }
  }

  notification {
    email {
      send_to_subscription_administrator    = true
      send_to_subscription_co_administrator = true
      custom_emails                         = ["admin@contoso.com"]
    }
  }
}
结果:

在我的例子中,每秒磁盘写入操作的度量\u资源\u id将与CPU百分比的度量相同。这是否意味着度量值_名称是Azure用来确定实际使用哪个度量值的名称?是的,您可以指定度量值_名称,以及此线程上的任何更新?