如何使用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
相关产品推荐
相关产品推荐

