你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
当你试图在肱二头肌不允许的位置使用 for-expression 时,这种诊断就会发生。
For表达式可以在Bicep的几个特定位置使用。 你可以在定义资源、模块、变量和输出时使用它们。 你也可以在资源和模块中设置属性时使用它们。 如果你直接在不支持的位置(比如对象字面值)放置 for-表达式,Bicep 会抛出 BCP138,因为该语法在那里不支持。
Description
此上下文不支持 for 表达式。 For 表达式可用作资源、模块、变量和输出声明的值,或资源和模块属性的值。
级别
错误
解决方案
解决方案是将 for 表达式移动到支持的位置。
例子
以下示例在对象字面量的磁盘属性中有一个for循环。 Bicep 不允许在这种情况下使用表达。
param diskCount int = 5
var vmConfiguration = {
description: 'Virtual machine configuration'
dataDisks: [
for diskIndex in range(0, diskCount): {
name: 'dataDisk${diskIndex + 1}'
sizeGB: 1
index: diskIndex
}
]
}
output vmConfig object = vmConfiguration
解决方案是将 for 表达式移动到其自身变量中,然后在对象内引用该变量:
param diskCount int = 5
var dataDiskArray = [
for diskIndex in range(0, diskCount): {
name: 'dataDisk${diskIndex + 1}'
sizeGB: 1
index: diskIndex
}
]
var vmConfiguration = {
description: 'Virtual machine configuration'
dataDisks: dataDiskArray
}
output vmConfig object = vmConfiguration
后续步骤
有关 Bicep 诊断的详细信息,请参阅 Bicep 核心诊断。