双virtual network双向peering部署的ARM template循环依赖问题求助
ARM模板部署双向VNet对等循环依赖问题解决思路
报错原因
从Azure门户导出的模板默认会自动捕获资源间的所有关联依赖,会错误地将两个VNet的对等连接资源设置为互相依赖对方的对等连接资源,触发ARM部署的循环依赖校验规则,导致部署失败。
可行解决方法
- 方法1:调整对等连接的
dependsOn属性(无需拆分部署)
手动修改两个对等连接子资源的依赖配置,仅保留对两个VNet根资源的依赖,删除对另一个对等连接资源的依赖即可。示例的资源依赖配置参考:
两个方向的对等连接都使用上述依赖配置即可,ARM支持两个对等连接并行创建,不需要等待对方对等完成。"dependsOn": [ "[resourceId('Microsoft.Network/virtualNetworks', 'virtual-network-1')]", "[resourceId('Microsoft.Network/virtualNetworks', 'virtual-network-2')]" ] - 方法2:分阶段部署(更稳定,适合生产环境)
- 第一阶段仅部署
virtual-network-1和virtual-network-2两个VNet资源,不包含任何对等连接配置 - 第二阶段再部署两个方向的对等连接资源,此时两个VNet已经存在,完全不会触发依赖冲突
- 第一阶段仅部署
额外注意事项
- 双向对等的配置参数需要保持一致,比如是否允许中转流量、是否允许远端VNet访问本地等配置需要两边匹配,否则对等会处于断开状态
- VNet的地址段不能重叠,否则对等连接会创建失败
内容的提问来源于stack exchange,提问作者nicoloverflow
相关产品推荐
相关产品推荐

