Linter 规则 - 嵌套部署模板范围
当 Microsoft.Resources/deployments
资源使用内部作用域表达式求值,并包含对父模板中定义的符号的任何引用时,此 Linter 规则会触发诊断。
Linter 规则代码
请在 Bicep 配置文件中使用以下值自定义规则设置:
nested-deployment-template-scoping
解决方案
以下示例不会通过此测试,因为 fizz
是在父模板的命名空间中定义的。
var fizz = 'buzz'
resource nested 'Microsoft.Resources/deployments@2020-10-01' = {
name: 'name'
properties: {
mode: 'Incremental'
expressionEvaluationOptions: {
scope: 'inner'
}
template: {
'$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#'
contentVersion: '1.0.0.0'
resources: [
{
apiVersion: '2022-09-01'
type: 'Microsoft.Resources/tags'
name: 'default'
properties: {
tags: {
tag1: fizz // <-- Error! `fizz` is defined in the parent template's namespace
}
}
}
]
}
}
}
后续步骤
有关 Linter 的详细信息,请参阅使用 Bicep Linter。