在我的二头肌文件中,我获得了对现有 vnet 的引用,如下所示:
resource existingVNET 'Microsoft.Network/virtualNetworks@2021-02-01' existing = {
name: 'the-existing-vnet'
}
我尝试为每个子网包含多个(准确地说是四个)资源语句,如下所示:
resource subnetPbdResource 'Microsoft.Network/virtualNetworks/subnets@2020-11-01' = {
parent: existingVNET
name: 'first-snet'
...
}
resource subnetPbdResource 'Microsoft.Network/virtualNetworks/subnets@2020-11-01' = {
parent: existingVNET
name: 'second-snet'
...
}
...但是,当我运行它时(使用 az deployment group create ...
)得到一个错误:代码为 AnotherOperationInProgress
。在 vnet 下创建了一个随机(似乎)子网。
我还尝试定义一个子网数组,如下所示:
var subnets = [
{
name: 'api'
subnetPrefix: '10.144.0.0/24'
}
{
name: 'worker'
subnetPrefix: '10.144.1.0/24'
}
]
...但我找不到用子网阵列分配现有 vnet 的方法。 .properties.subnets
似乎无法访问现有的 vnet 资源。
感谢任何提示!
答案 0 :(得分:1)
当 ARM 试图同时部署多个子网资源时,它似乎陷入困境。
您可以使用 [FromBody]
来确保一个接一个地创建子网:
dependsOn
答案 1 :(得分:0)
基本上它归结为构建一个子网数组,使用@batchSize(1) 来确保子网的串行创建(我猜这与在@Manuel Batsching 的回答中使用 dependsOn
实现的效果相同)并通过子网数组作为 Resource
“创建子网语句”的参数。
优势明显:无需重复代码即可创建子网