我正在使用以下二头肌创建子网:
resource nsg 'Microsoft.Network/networkSecurityGroups@2023-05-01' existing = {
name: networkSecurityGroupName
}
resource subnet 'Microsoft.Network/virtualNetworks/subnets@2020-11-01' = {
name: name
parent: vnet
properties: {
addressPrefix: range
networkSecurityGroup: {
id: nsg.id
}
delegations: [
{
name: 'delegation'
properties: {
serviceName: 'Microsoft.Web/serverfarms'
}
type: 'Microsoft.Network/virtualNetworks/subnets/delegations'
}
]
privateEndpointNetworkPolicies: 'Disabled'
privateLinkServiceNetworkPolicies: 'Enabled'
}
}
字符串
如您所见,二头肌正在设置网络安全组(NSG)。
但是,某些子网没有NSG,因此不会传入任何NSG。
我如何选择性地加入NSG?
我试过了
networkSecurityGroup: {
id: ((networkSecurityGroupName != '') ? nsg.id : null)
}
型
它是无效的,因为id不能为null。不知何故,我需要省略整个networkSecurityGroup属性。
我将NSG移至如下模块:
module subnetNSG './subnet_nsg.bicep' = if (networkSecurityGroupName != '') {
name: '${deployment().name}-subnet.Deploy'
params: {
name: name
vnetName: vnetName
networkSecurityGroupName: networkSecurityGroupName
}
}
型
它会选择性地呼叫模块。模块具有这个资源:
resource subnetNSG 'Microsoft.Network/virtualNetworks/subnets@2020-11-01' = {
name: name
parent: vnet
properties: {
networkSecurityGroup: {
id: nsg.id
}
}
}
型
此操作失败,原因是:
资源的地址前缀字符串不能为null或为空。
1条答案
按热度按时间np8igboo1#
你和以下人关系很好:
字符串
您需要在
networkSecurityGroup
对象属性上设置条件:型