Bicep 诊断代码 - BCP401
当使用表达式定义资源主体时会出现此诊断,因为 Spread
运算符会转换为函数。 这是 JSON 中的一种限制。
说明
在此位置不允许使用扩展运算符“...”。
Level
错误
示例
以下示例会引发诊断,因为 spread
运算符用于定义资源主体:
param location string = resourceGroup().location
param addressPrefix string = '10.0.0.0/24'
resource vnet 'Microsoft.Network/virtualNetworks@2024-01-01' = {
name: 'vnetName'
location: location
...(addressPrefix != '' ? {
properties: {
addressSpace: {
addressPrefixes: [
addressPrefix
]
}
}
} : {})
}
可以通过在较低级别使用运算符来修复诊断:
param location string = resourceGroup().location
param addressPrefix string = '10.0.0.0/24'
resource vnet 'Microsoft.Network/virtualNetworks@2024-01-01' = {
name: 'vnetName'
location: location
properties: {
addressSpace: {
...(addressPrefix != '' ? {
addressPrefixes: [
addressPrefix
]
} : {})
}
}
}
后续步骤
有关 Bicep 诊断的详细信息,请参阅 Bicep 核心诊断。