本文介绍了手臂模板中的 copyindex() 错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是我的参数文件:
"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)
Here is my deployment file(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]"
}
}
}
}
}
]
}
部署 arm 模板应该做的是启动具有各自地址前缀的子网(例如:sub1 -> 10.0.1.0/24,sub2 -> 10.0.2.0/24)但是当我从 powershell 执行模板时使用以下命令:
What the deployment arm template should be doing is launch the subnets with their respective address prefixes (eg: sub1 -> 10.0.1.0/24,sub2 -> 10.0.2.0/24) but when I execute the template from the powershell using the following command:
New-AzureRmResourceGroupDeployment -Name testing -ResourceGroupName rgname -TemplateFile C:\Test\deploy.json -TemplateParameterFile C:\Test\parameterfile.json
显示以下错误:
此位置不应使用模板函数copyIndex".该函数只能在指定了副本的资源中使用.错误说 copyindex() 有问题,但我无法找出它到底有什么问题.
推荐答案
副本必须如下所示:
"copy": [
{
"name": "xxx",
"count": "xxx",
"input": { ... }
}
]
您缺少[]
这篇关于手臂模板中的 copyindex() 错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!