Bicep 错误代码 - BCP401
当使用表达式将资源主体时会出现此错误,因为会将 Spread
运算符转换为函数。 这是 JSON 中的一种限制。
错误说明
The spread operator "..." is not permitted in this location.
示例
以下示例会引发错误,因为 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 核心诊断。