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

APIM从stv1升级至stv2后,PowerShell移除区域时SubnetResourceId报错

问题解决思路与方案

这个问题不少用户在APIM从stv1升级到stv2后都遇到过,核心原因是stv2对**子网资源ID(SubnetResourceId)**的格式校验比stv1严格得多,报错里的正则表达式就是stv2要求的标准格式。

具体解决步骤:

  • 不要用管道一次性执行,拆分操作分步处理:
    1. 先获取APIM实例对象:
      $apim = Get-AzApiManagement -ResourceGroupName $APIMresourceGroupName -Name $APIMaccountName
      
    2. 移除目标区域:
      $apim = Remove-AzApiManagementRegion -ApiManagement $apim -Location "North Europe"
      
    3. 检查剩余区域的子网ID格式:
      遍历$apim.AdditionalLocations,确认每个区域的SubnetResourceId完全符合报错里的正则要求——必须是包含订阅ID、资源组、虚拟网络、子网的完整资源路径,比如:
      /subscriptions/your-sub-id/resourceGroups/your-rg/providers/Microsoft.Network/virtualNetworks/your-vnet/subnets/your-subnet
      
      如果发现格式不对(比如缺少providers/Microsoft.Network部分),手动修正对应的子网ID:
      $apim.AdditionalLocations | Where-Object { $_.Location -eq "剩余区域名称" } | ForEach-Object {
          $_.SubnetResourceId = "修正后的完整子网资源ID"
      }
      
    4. 最后提交修改:
      Set-AzApiManagement -ApiManagement $apim
      

为什么之前stv1能用?

stv1版本对子网ID的校验没有这么严格,即使格式稍有不规范也能通过,但stv2强制执行了标准资源ID格式,所以移除区域后执行Set-AzApiManagement时,会校验所有剩余区域的子网ID,只要有一个不符合就会触发报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 10:55:10