我尝试最小化我的ARM模板,但是我被困在这里...
我的原始模板是:
"parameters": {
"subscriptionId": {
"type": "String"
},
"resourcegroupName": {
"type": "String"
},
.....
"databases": {
"type": "Array"
},
"failoverPolicy": {
"type": "String"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.Sql/servers/failoverGroups",
"name": "[concat(parameters('primaryServer'), '/', parameters('failovergroupName'))]",
"apiVersion": "2015-05-01-preview",
"location": "eastus",
"properties": {
"readWriteEndpoint": {
"failoverPolicy": "[parameters('failoverPolicy')]"
},
"partnerServers": [
{
"id": "[concat('/subscriptions/',parameters('subscriptionId'),'/resourceGroups/',parameters('resourcegroupName'),'/providers/Microsoft.Sql/servers/',parameters('partnerServer'))]"
}
],
"databases": "[parameters('databases')]"
},
"dependsOn": [
"[concat('Microsoft.Sql/servers/',parameters('partnerServer'))]",
"[concat('Microsoft.Sql/servers/',parameters('partnerServer'),'/elasticPools/',parameters('primaryElasticPoolName'))]"
]
},
....
我的参数文件包含:
"parameters": {
"subscriptionId": {
"value": "11111-4444-5555-666-777777777"
},
"resourcegroupName": {
"type": "RG-ElasticPool"
},
"primaryElasticPoolName": {
"value": "crelasticpool01"
},
....
"databases": {
"value": [
"/subscriptions/11111-4444-5555-666-777777777/resourceGroups/RG-ElasticPool/providers/Microsoft.Sql/servers/crelasticsrv01/databases/crelasticdb03",
"/subscriptions/11111-4444-5555-666-777777777/resourceGroups/RG-ElasticPool/providers/Microsoft.Sql/servers/crelasticsrv01/databases/crelasticdb02",
"/subscriptions/11111-4444-5555-666-777777777/resourceGroups/RG-ElasticPool/providers/Microsoft.Sql/servers/crelasticsrv01/databases/crelasticdb01"
]
},
"failoverPolicy": {
"value": "Manual"
}
}
我只能拥有:
"databases": {
"value": [
"crelasticdb03",
"crelasticdb02",
"crelasticdb01"
]
在我的参数文件中代替长ID,并在我的模板文件中合并长ID
我尝试使用几种配置:
"databases": "[concat('/subscriptions/',parameters('subscriptionId'),'/resourceGroups/',parameters('resourcegroupName'),'/providers/Microsoft.Sql/servers/',parameters('primaryServer'),'/databases/',parameters('databases')[copyIndex()])]"
但是我总是收到与copyindex相关的部署错误...
答案 0 :(得分:1)
不幸的是,您不能使用复制功能创建数组。您只能使用它创建对象数组。您似乎需要一个字符串数组,这是不可能的。
您可以解决嵌套模板和循环问题,但是与您拥有的东西一起使用,会更容易/更清洁。