这是我的参数文件:
"VNetSettings": {
"value": {
"name": "VNet1",
"addressPrefixes": "10.0.0.0/16",
"subnets": [
{
"name": "sub1",
"addressPrefix": "10.0.1.0/24"
},
{
"name": "sub2",
"addressPrefix": "10.0.2.0/24"
}
]
}
}
这是我的部署文件(deploy.json)
{
"contentversion": "1.0.0.0",
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"parameters": {
"VNetSettings": {
"type": "object"
},
"noofsubnets": {
"type": "int"
}
},
"resources": [
{
"apiVersion": "2015-06-15",
"type": "Microsoft.Network/virtualNetworks",
"name": "[parameters('VNetSettings').name]",
"location": "[resourceGroup().location]",
"properties": {
"addressSpace": {
"addressPrefixes": [
"[parameters('VNetSettings').addressPrefixes]"
]
},
"copy": {
"name": "subnets",
"count": "[parameters('noofsubnets')]",
"input": {
"name": "[parameters('VNetSettings').subnets[copyIndex('subnets',1)].name]",
"properties": {
"addressPrefix": "[parameters('VNetSettings').subnets[copyIndex('subnets',1)].addressPrefix]"
}
}
}
}
}
]
}
部署臂模板应该做的是使用各自的地址前缀启动子网(例如:sub1 - > 10.0.1.0/24,sub2 - > 10.0.2.0/24)但是当我执行模板时powershell使用以下命令:
New-AzureRmResourceGroupDeployment -Name testing -ResourceGroupName rgname -TemplateFile C:\Test\deploy.json -TemplateParameterFile C:\Test\parameterfile.json
我显示以下错误:
模板功能' copyIndex'预计不会在这个位置。 该函数只能在指定了副本的资源中使用。错误 说copyindex()有问题,但我无法做到 找出它到底出了什么问题。
答案 0 :(得分:3)
复制必须如下所示:
"copy": [
{
"name": "xxx",
"count": "xxx",
"input": { ... }
}
]
您缺少[]
答案 1 :(得分:1)
copy
不应位于 properties
字段内。它必须与 properties
处于同一级别。