You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Terraform启用Azure VMSS中的运行状况扩展

启用Azure VMSS运行状况监测与自动修复(Terraform实现)

核心结论

是,必须在Terraform的azurerm_virtual_machine_scale_set资源块内配置相关参数,才能启用原本禁用的运行状况选项并完成修复功能的设置。

具体配置步骤

1. 开启VMSS基础运行状况监测

运行状况选项禁用的核心原因通常是未关联负载均衡器健康探针,需在VMSS资源块中添加以下配置:

resource "azurerm_virtual_machine_scale_set" "example" {
  # 已有基础配置(名称、地域、SKU等)...

  # 关联负载均衡器健康探针,这是启用运行状况选项的前提
  health_probe_id = azurerm_lb_probe.example.id

  # 配置自动修复策略
  upgrade_policy {
    mode = "Automatic"
    # 启用自动修复规则
    repair_policy {
      enabled = true
      max_repair_attempts_per_instance = 3 # 最大修复尝试次数
      repair_action                    = "Replace" # 异常时执行的动作:重启(Restart)/替换(Replace)
    }
  }

  # 其他OS、网络配置...
}

2. 添加应用层运行状况扩展(可选)

如果需要监测应用级健康状态,需在VMSS的extension_profile中添加对应OS的健康扩展:

resource "azurerm_virtual_machine_scale_set" "example" {
  # 已有配置...

  extension_profile {
    extension {
      name                     = "ApplicationHealthWindows" # Linux环境请用ApplicationHealthLinux
      publisher                = "Microsoft.ManagedServices"
      type                     = "ApplicationHealthWindows"
      type_handler_version     = "1.0"

      # 配置应用健康检查的协议、端口和路径
      settings = jsonencode({
        "protocol"     = "Http"
        "port"         = 80
        "requestPath"  = "/health"
      })
    }
  }
}

关键注意事项

  • health_probe_id是解锁运行状况选项的必要条件,未关联探针时Azure会默认禁用该功能。
  • repair_policy必须嵌套在upgrade_policy下配置,才能触发实例异常时的自动修复动作。
  • 应用健康扩展需与VMSS的OS类型匹配,Windows和Linux对应不同的扩展名称。

内容的提问来源于stack exchange,提问作者Harry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 07:00:57