分享方式:


Linter 規則 - 巢狀部署範本範圍界定

Microsoft.Resources/deployments 資源使用內部範圍界定運算式評估,且包含任何於父代範本中定義的符號參考,這項 Linter 規則便會觸發診斷。

Linter 規則程式碼

使用 Bicep 設定檔中的下列值來自訂規則設定:

nested-deployment-template-scoping

解決方案

下方的例子未能成功通過測試,因為 fizz 是在父代範本中定義的。

var fizz = 'buzz'

resource nested 'Microsoft.Resources/deployments@2024-03-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: '2024-03-01'
          type: 'Microsoft.Resources/tags'
          name: 'default'
          properties: {
            tags: {
              tag1: fizz // <-- Error! `fizz` is defined in the parent template's namespace
            }
          }
        }
      ]
    }
  }
}

下一步

如需 Linter 的詳細資訊,請參閱使用 Bicep Linter