我想在一个模板中传递一个空值,我有一个模板,我试图在其中传递一组条件给它,例如假设如果cidr范围不存在,跳过资源部署,如果cidr范围存在,继续部署资源。
{
"type": "Microsoft.Network/virtualNetworks/subnets",
"condition": "[not(equals(parameters('environmentAbbreviation'), 'd01'))]",
"apiVersion": "2020-05-01",
"name": "[concat(variables('vnetResourceName'), '/', variables('SubnetName'))]",
"dependsOn": [
"[resourceId('Microsoft.Network/virtualNetworks', variables('vnetResourceName'))]"
],
"properties": {
"addressPrefix": "[not(empty(parameters('SubnetAddressPrefix01')))]",
"networkSecurityGroup": {
"id": "[resourceId('Microsoft.Network/networkSecurityGroups', variables('networkSecurityGroup1'))]"
},
"privateEndpointNetworkPolicies": "Enabled",
"privateLinkServiceNetworkPolicies": "Enabled"
}
},
我尝试了多种方法使模板工作,但抛出一个错误,声明参数值为空,
对于上面的代码我得到错误:子网的格式不正确。它应该遵循CIDR表示法,例如10.0.0.0/24。即使我遵循了正确的cidr范围
1条答案
按热度按时间wb1gzix01#
要跳过资源部署(如果CIDR范围存在):
properties
下的 *address prefix
* 中使用以下 *if condition
*。修改
address prefix condition
如下所示:如果像这样传递它,它不会抛出null参数错误。
有关**“ARM模板的逻辑函数”,请参阅MSDoc。**
json
* 的副本,并成功部署了它。*