你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

肱二头肌诊断代码 - BCP138

当你试图在肱二头肌不允许的位置使用 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 核心诊断