Azure ARM 模板 vnet 对等 - 子网删除

Azure ARM template vnet peering - subnets deleting

这是我收集到的已知 'issue' (https://github.com/Azure/azure-quickstart-templates/issues/2786)

我构建了一个 python 脚本,该脚本接受 .csv 并构建环境。一切正常。我有第二个 .csv 进行对等,它可以工作,但在事后对 virtualNetworks 进行任何更改(而不是再次指定子网)会删除已经存在的所有子网。您可能认为我可以只更新我的代码以在同一个脚本中即时创建对等互连,但我不能……增量模式不起作用。我希望它是一个更加动态和独立的过程。

注意:我也在跨订阅执行此操作,这样会增加一些乐趣

需要一些帮助来了解我如何在事后进入并设置对等互连:

我看到的选项:

  1. 在进行对等互连时再次指定子网 - 这样做的问题是我的代码最终会变得更大,并且 .csv 文件会很丑陋。效率不是很高,但我认为它会起作用。

  2. 在 Python 中使用某种条件,它将在初始构建时执行对等互连——先有鸡还是先有蛋的问题,我仍然无法返回事后同行。更不用说我遇到了 hub/spoke 情况...因此需要解决很多问题。

  3. 你甚至可以用嵌套来做这个吗?

此外,我的脚本的一个 'feature' 是它会在完成后吐出所有已完成的 ARM 模板和参数文件。整个想法是让发起者只需填写 .csv 即可完成所有操作。

希望我遗漏了什么。可以 post 编码,但是有很多而且相当简单。

编辑:删除我发表的 child-parent 评论,这似乎使问题难以理解。

这是在不修改其他 vnet 属性的情况下创建对等互连的方法:

{
    "apiVersion": "2017-04-01",
    "name": "%vnetname%/%peeringName%",
    "location": "%location%",
    "type": "Microsoft.Network/virtualNetworks/virtualNetworkPeerings",
    "properties": {
        "remoteVirtualNetwork": {
            "id": "[resourceId('Microsoft.Network/virtualNetworks', '%vnetName%')]"
        },
        "allowVirtualNetworkAccess": true,
        "allowForwardedTraffic": false,
        "allowGatewayTransit": false,
        "useRemoteGateways": false
    }
}

请注意,您需要执行此操作两次,每个 vnet 一次。仅在一个 vnet 上执行此操作并不能真正实现任何目标。