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

批量移除重建跨订阅VNET对等连接,AZ CLI/ARM Template/PowerShell选哪种最优?

最优方案选型&实现建议

最终选型推荐:AZ CLI + 独立配置文件

这是最匹配你需求的方案,核心原因如下:

  • 可移植性拉满:Windows、macOS、Linux全平台兼容,只要装了AZ CLI就能跑,没有额外依赖,换环境不需要调整脚本逻辑
  • 跨订阅操作成本极低:切换订阅只需要一行az account set命令,权限配置简单
  • 流程适配性好:你需要先删旧对等、再建新对等的两步式操作,用AZ CLI的命令式逻辑写起来非常直接,不需要处理声明式模板的状态同步问题
  • 易维护:把24条对等的所有参数都抽成单独的JSON/CSV配置文件,后续要修改对等参数、增减对等数量,直接改配置就行,不用动脚本本身,完全满足可移植要求

另外两个选项的劣势

  • ARM Template:本身是声明式部署工具,更适合新建稳定的资源栈,你要先删除存量对等的需求用ARM实现非常别扭:要么单独写删除脚本,要么开完整部署模式,风险极高容易误删VNET下的其他资源,而且跨订阅的ARM部署还要额外配置多订阅的部署权限,流程繁琐很多
  • PowerShell:功能上能实现需求,但可移植性远不如AZ CLI,跨平台需要额外安装对应版本的Az模块,不同版本的Az模块还容易出现命令兼容问题,对运行环境的要求高很多

核心实现逻辑参考

你可以按这个结构搭脚本,后续复用性很高:

  1. 先把24条对等连接的所有配置整理成独立的JSON文件,示例结构:
{
  "peeringList": [
    {
      "srcSubId": "PRD订阅ID",
      "srcRgName": "PRD-VNET所在资源组",
      "srcVnetName": "PRD-VNET",
      "peeringName": "PRD-to-PEER-VNET-01",
      "remoteVnetId": "/subscriptions/对端订阅ID/resourceGroups/对端资源组/providers/Microsoft.Network/virtualNetworks/对端VNET名",
      "allowForwardedTraffic": true,
      "allowGatewayTransit": false,
      "useRemoteGateways": false
    },
    // 剩下23条对等按同样格式填写,包含DEV环境的12条
  ]
}
  1. 脚本核心执行步骤:
  • 先登录Azure:az login
  • 遍历配置文件里的所有对等规则,先删除存量对等:
    az network vnet peering delete --subscription ${srcSubId} -g ${srcRgName} --vnet-name ${srcVnetName} -n ${peeringName}
  • 所有旧对等删除完成后,再遍历配置新建对等:
    az network vnet peering create --subscription ${srcSubId} -g ${srcRgName} --vnet-name ${srcVnetName} -n ${peeringName} --remote-vnet ${remoteVnetId} --allow-forwarded-traffic ${allowForwardedTraffic} --allow-gateway-transit ${allowGatewayTransit} --use-remote-gateways ${useRemoteGateways}

注意:双向对等需要配置正反两条规则,也就是VNET A到VNET B、VNET B到VNET A各一条,刚好对应你24条的总数量

跑脚本之前可以在删除和创建命令后加--what-if参数预览执行结果,确认没有问题再正式执行,避免影响业务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 17:24:00