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

如何通过ARM模板为Azure云服务扩展支持应用的经典负载均衡器添加健康探测?

问题解答

能否通过ARM模板为经典负载均衡器添加健康探测?

可以,但经典负载均衡器的ARM模板结构与标准负载均衡器完全不同,错误的属性结构或资源类型是导致你遇到解析错误的核心原因。

错误原因及修正方向

你遇到的Invalid request format. Unable to parse request错误,通常是因为套用了标准LB的探测配置写法,或者经典LB的JSON属性格式、字段名不符合要求。经典LB的健康探测必须嵌套在Microsoft.ClassicNetwork/loadBalancers资源的properties.probes数组中,且字段名有严格规范。

参考ARM模板片段

以下是为经典负载均衡器配置健康探测的完整模板示例(包含负载均衡规则关联探测):

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "lbName": {
      "type": "string",
      "metadata": {
        "description": "经典负载均衡器名称"
      }
    },
    "publicIpName": {
      "type": "string",
      "metadata": {
        "description": "已存在的公网IP名称"
      }
    },
    "location": {
      "type": "string",
      "metadata": {
        "description": "资源所在Azure区域"
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.ClassicNetwork/loadBalancers",
      "apiVersion": "2016-04-01",
      "name": "[parameters('lbName')]",
      "location": "[parameters('location')]",
      "properties": {
        "frontendIPConfigurations": [
          {
            "name": "FrontendIP",
            "properties": {
              "publicIPAddress": {
                "id": "[resourceId('Microsoft.ClassicNetwork/publicIPAddresses', parameters('publicIpName'))]"
              }
            }
          }
        ],
        "backendAddressPools": [
          {
            "name": "BackendPool"
          }
        ],
        "probes": [
          {
            "name": "HttpHealthProbe",
            "properties": {
              "protocol": "Http",
              "port": 80,
              "requestPath": "/health",
              "intervalInSeconds": 15,
              "numberOfProbes": 2
            }
          }
        ],
        "loadBalancingRules": [
          {
            "name": "HttpRule",
            "properties": {
              "frontendIPConfiguration": {
                "id": "[concat(resourceId('Microsoft.ClassicNetwork/loadBalancers', parameters('lbName')), '/frontendIPConfigurations/FrontendIP')]"
              },
              "backendAddressPool": {
                "id": "[concat(resourceId('Microsoft.ClassicNetwork/loadBalancers', parameters('lbName')), '/backendAddressPools/BackendPool')]"
              },
              "protocol": "Tcp",
              "frontendPort": 80,
              "backendPort": 80,
              "probe": {
                "id": "[concat(resourceId('Microsoft.ClassicNetwork/loadBalancers', parameters('lbName')), '/probes/HttpHealthProbe')]"
              }
            }
          }
        ]
      }
    }
  ]
}

关键注意事项

  • 资源类型必须使用Microsoft.ClassicNetwork/loadBalancers,API版本推荐用2016-04-01(经典LB的稳定版本)
  • 健康探测必须定义在probes数组内,负载均衡规则需通过id字段关联探测资源
  • Http探测需指定requestPath(如/health),Tcp探测无需此属性
  • 字段名必须严格匹配:比如intervalInSeconds不能简写为interval,numberOfProbes不能拼写错误
  • 若仍报错,优先检查JSON语法(如逗号、括号是否闭合),以及探测属性值是否符合范围(如端口需在1-65535之间)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 01:23:11