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

Bicep部署ILB ASE v3首次成功,后续重部署报‘Not Supported’错误

关于ILB ASE v3重新部署的支持性及错误排查

使用ARM模板/Bicep更新ILB ASE v3或在流水线中重复部署是完全受支持的,你遇到的"Not Supported"错误通常是由模板中特定属性的更新逻辑或API版本限制导致的,而非重新部署本身不被支持。

错误分析

你看到的BadRequest错误信息缺乏详细上下文,但结合你的Bicep代码,可能的触发点包括以下几个方面:

1. Networking配置资源的属性更新限制

你的ASE模块中定义了Microsoft.Web/hostingEnvironments/configurations@2022-03-01资源(networking配置),其中部分属性的更新在旧API版本中可能存在限制:

  • allowNewPrivateEndpointConnections:该属性在某些场景下不支持通过模板更新
  • remoteDebugEnabled:ASE v3的远程调试设置变更可能需要通过门户或CLI操作,而非模板

2. API版本兼容性问题

你使用的Microsoft.Web/hostingEnvironments@2022-03-01 API版本相对较旧,部分更新逻辑在新版本中已被修复或优化。

3. 诊断设置的作用域定义问题

诊断设置资源中使用scope: appServiceEnvironment的嵌套方式,可能在重复部署时触发资源关联冲突。

4. 不必要的空值/类型转换

代码中multiSize: !empty(multiSize) ? any(multiSize) : null的any()转换可能导致Azure资源管理器解析异常。

修复方案

针对上述问题,按以下步骤调整你的Bicep代码:

步骤1:升级API版本

将ASE及相关配置资源的API版本升级到最新稳定版(如2023-08-01):

resource appServiceEnvironment 'Microsoft.Web/hostingEnvironments@2023-08-01' = {
  // ... 现有属性
}

resource configuration 'Microsoft.Web/hostingEnvironments/configurations@2023-08-01' = {
  // ... 现有属性
}

步骤2:调整Networking配置的可更新属性

移除或条件化处理不支持更新的属性,例如:

resource configuration 'Microsoft.Web/hostingEnvironments/configurations@2023-08-01' = {
  name: 'networking'
  parent: appServiceEnvironment
  properties: {
    // 仅保留支持模板更新的属性
    ftpEnabled: ftpEnabled
    inboundIpAddressOverride: inboundIpAddressOverride
  }
}

若需设置allowNewPrivateEndpointConnections或remoteDebugEnabled,可通过Azure CLI在首次部署后单独配置,而非纳入模板重复部署。

步骤3:修正诊断设置的定义

移除scope属性,通过targetResourceId明确关联ASE资源:

resource appServiceEnvironment_diagnosticSettings 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = if (!empty(diagnosticStorageAccountId) || !empty(diagnosticWorkspaceId)) {
  name: !empty(diagnosticSettingsName) ? diagnosticSettingsName : '${name}-diagnosticSettings'
  properties: {
    targetResourceId: appServiceEnvironment.id
    storageAccountId: !empty(diagnosticStorageAccountId) ? diagnosticStorageAccountId : null
    workspaceId: !empty(diagnosticWorkspaceId) ? diagnosticWorkspaceId : null
    eventHubAuthorizationRuleId: !empty(diagnosticEventHubAuthorizationRuleId) ? diagnosticEventHubAuthorizationRuleId : null
    eventHubName: !empty(diagnosticEventHubName) ? diagnosticEventHubName : null
    logs: diagnosticsLogs
  }
}

步骤4:移除不必要的类型转换

将multiSize的赋值逻辑简化:

multiSize: empty(multiSize) ? null : multiSize

步骤5:固定模块部署名称

主Bicep中的模块名称可简化为固定值,避免不必要的部署记录生成:

module appServiceEnvironmentv3 'br/Compute:asev3:v0.1' = {
  name: 'asev3-${appServiceEnvironment.name}-deploy'
  // ... 现有参数和作用域
}

验证

调整完成后,先通过az deployment group validate命令验证模板,再执行增量部署,确认错误是否消除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 08:12:08