我想知道是否可以在我的Azure ARM模板中执行内联条件语句。简而言之,如果给定参数设置为“是”,我想为NIC分配一个公共IP地址
{
"apiVersion": "2015-06-15",
"type": "Microsoft.Network/networkInterfaces",
"name": "my-network-interface",
"location": "[resourceGroup().location]",
"properties": {
"ipConfigurations": [
{
"name": "ipconfig1",
"properties": {
"privateIPAllocationMethod": "Static",
"subnet": {
"id": "my-subnet-name"
},
"privateIpAddress": "10.0.0.5",
IF ASSIGN PUBLIC IP THEN,
"publicIpAddress": "id": "[resourceId('Microsoft.Network/publicIPAddresses', 'my-public-ip)]"
}
}
]
}
},
答案 0 :(得分:0)
您必须使用union()
和if()
函数来实现。创建这些变量:
"external": {
"publicIPAddress": {
"id": "my_ip_id"
}
},
"internal": {
"privateIPAddress": "10.0.0.5",
"privateIPAllocationMethod": "Static",
"subnet": {
"id": "my_subnet_id"
}
},
然后执行以下操作:
"ipConfigurations": [
{
"name": "ipconfig1",
"properties": "[if(equals(parameters('something'), 'yes'), union(variables('external'), variables('external')), variables('internal'))]"
}
]
替代方法(如果您不关心代码重复),则可以使用略有不同的代码创建2个不同的部署,一个将部署条件1,另一个将部署条件2。此外,这种方法更易于理解,但较难维护。