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

使用New-AzResource创建应用网关探测对象报错求助

问题原因及解决建议

核心错误点

  1. ResourceType格式错误:你指定的Microsoft.Network/applicationGateways/probes/probename不符合Azure资源URI规范,子资源名称不应包含在ResourceType中,正确的ResourceType是Microsoft.Network/applicationGateways/probes,探测名称需要和应用网关名称一起放在ResourceName参数里,格式为appGwName/probes/probename。
  2. Properties参数格式错误:match字段不能直接传字符串200-399,需要构造包含statusCodes数组的对象。
  3. 操作方式不合适:New-AzResource并非管理应用网关子资源的最优方式,Azure提供了专门的应用网关cmdlet来处理这类配置,更可靠且不易出错。

方法一:使用专用应用网关Cmdlet(推荐)

通过Add-AzApplicationGatewayProbeConfig和Set-AzApplicationGateway来添加探测,这是官方推荐的方式:

# 获取目标应用网关
$appGw = Get-AzApplicationGateway -Name "appGwName" -ResourceGroupName "AppGwRg"

# 定义探测配置
$probeConfig = @{
    Name = "probename"
    Protocol = "Http"
    Path = "/"
    Interval = 30
    Timeout = 30
    UnhealthyThreshold = 3
    PickHostNameFromBackendHttpSettings = $true
    Match = New-AzApplicationGatewayProbeHealthResponseMatch -StatusCode "200-399"
}

# 添加探测到应用网关
$appGw = Add-AzApplicationGatewayProbeConfig @probeConfig -ApplicationGateway $appGw

# 保存配置到Azure
Set-AzApplicationGateway -ApplicationGateway $appGw

方法二:修正New-AzResource的用法

如果你坚持使用New-AzResource,需要调整参数格式:

$properties = @{
    protocol = 'Http'
    path = '/'
    interval = 30  # 注意这里用数字,不是字符串
    timeout = 30
    unhealthyThreshold = 3
    pickHostNameFromBackendHttpSettings = $true
    minServers = 0
    match = @{
        statusCodes = @("200-399")  # 修正match的格式
    }
}

$SlotParams = @{
    ResourceName = "appGwName/probes/probename"  # 主资源/子资源类型/子资源名称
    Location = "West Europe"
    ResourceGroupName = "AppGwRg"
    ResourceType = "Microsoft.Network/applicationGateways/probes"  # 正确的ResourceType
    PropertyObject = $properties
    ApiVersion = "2023-02-01"  # 指定较新的API版本,避免版本兼容问题
}

$execution = New-AzResource @SlotParams -Force

补充说明

  • 应用网关属于复合资源,其子资源(探测、规则、后端池等)通常需要通过更新父资源的配置来创建,而非直接用New-AzResource单独创建,这也是你用相同逻辑操作App Service没问题,但应用网关出错的原因——App Service的子资源(如部署槽)支持独立的资源创建API,而应用网关不支持。
  • 始终建议使用Azure PowerShell模块中对应资源的专用Cmdlet,这类工具会自动处理API版本、参数校验和资源依赖,减少出错概率。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 06:05:26