【发布时间】:2020-08-18 13:14:36
【问题描述】:
我正在尝试从变量对象部署多个虚拟机,其中一些虚拟机需要添加到 AVSet,而其他虚拟机不需要。
我正在努力寻找一种方法来遍历对象,同时排除 AVSet 等。
"virtualMachineSettings": [
{
"name": "WEBSERVER",
"subnet": "web",
"vmSize": "Standard_B2ms",
"publisher": "[parameters('standardVMPublisher')]",
"offer": "[parameters('standardVMoffer')]",
"sku": "[parameters('standardVMsku')]",
"avset": "webServersAVSet"
},
{
"name": "APPSERVER",
"subnet": "app",
"vmSize": "Standard_B2ms",
"publisher": "[parameters('standardVMPublisher')]",
"offer": "[parameters('standardVMoffer')]",
"sku": "[parameters('standardVMsku')]",
"avset": "appServersAVSet"
},
{
"name": "TESTSERVER",
"subnet": "data",
"vmSize": "Standard_B2ms",
"publisher": "[parameters('standardVMPublisher')]",
"offer": "[parameters('standardVMoffer')]",
"sku": "[parameters('standardVMsku')]",
"avset": ""
},
{
"name": "SQLSERVER",
"subnet": "data",
"vmSize": "Standard_B4ms",
"publisher": "MicrosoftSQLServer",
"offer": "SQL2017-WS2016",
"sku": "SQLDEV",
"avset": ""
}
],
{
"type": "Microsoft.Compute/virtualMachines",
"apiVersion": "2019-07-01",
"name": "[concat(variables('VirtualMachineSettings')[copyIndex()].name, '-', parameters('octopusTenant'))]",
"copy": {
"name": "vmIterator",
"count": "[length(variables('VirtualMachineSettings'))]"
},
"dependsOn": [
"[concat('Microsoft.Network/networkInterfaces/', variables('virtualMachineSettings')[copyIndex()].name, '-', parameters('octopusTenant'),'-NIC')]",
"avSet"
],
"location": "[resourceGroup().location]",
"tags": {
},
"properties": {
"hardwareProfile": {
"vmSize": "[variables('virtualMachineSettings')[copyIndex()].vmSize]"
},
"availabilitySet": {
"id": "[resourceId('Microsoft.Compute/availabilitySets',variables('virtualMachineSettings')[copyIndex()].avSet)]"
},
所以我认为如果参数 avset 为空,我需要设置一个 if 语句?但我被困住了。任何帮助都会很棒。
谢谢
【问题讨论】:
-
"availabilitySet": { "id:": "[if(not(empty(variables('virtualMachineSettings')[copyIndex()].avSet)), resourceId('Microsoft.Compute/availabilitySets', variables('virtualMachineSettings')[copyIndex()].avSet), json('null'))]" }, -
你解决问题了吗?我看到你添加了评论。
-
嗨,不,我只是发布了我正在尝试的 if 语句,但还是不行:(
-
使用评论中添加的方式会出现什么错误?我认为这是一个很好的解决方案。
-
你好,查尔斯。我收到此错误:
Status Message: Could not find member 'id:' on object of type 'ApiEntityRef'. Path 'properties.availabilitySet.id:', line 1, position 217. (Code:BadRequest)
标签: azure azure-virtual-machine arm-template