Linter 规则 - 不存在不必要的 dependsOn 条目

此规则确定何时已将不必要的 dependsOn 条目添加到资源或模块声明中。

Linter 规则代码

请在 Bicep 配置文件中使用以下值自定义规则设置:

no-unnecessary-dependson

解决方案

为了减少模板中的混淆,请删除所有不必要的 dependsOn 条目。 只要模板表达式通过符号名称(而不是包含硬编码 ID 或名称的字符串)引用其他资源,Bicep 就会自动推断大多数资源依赖项。

以下示例通不过此项测试,因为在 serverFarmId 属性的值中,Bicep 自动推断了表达式 appServicePlan.id(引用资源符号名称 appServicePlan)暗指的 dependsOn 条目 appServicePlan

param location string = resourceGroup().location

resource appServicePlan 'Microsoft.Web/serverfarms@2023-12-01' = {
  name: 'name'
  location: location
  sku: {
    name: 'F1'
    capacity: 1
  }
}

resource webApplication 'Microsoft.Web/sites@2023-12-01' = {
  name: 'name'
  location: location
  properties: {
    serverFarmId: appServicePlan.id
  }
  dependsOn: [
    appServicePlan
  ]
}

可以通过删除不必要的 dependsOn 条目来解决问题:

param location string = resourceGroup().location

resource appServicePlan 'Microsoft.Web/serverfarms@2023-12-01' = {
  name: 'name'
  location: location
  sku: {
    name: 'F1'
    capacity: 1
  }
}

resource webApplication 'Microsoft.Web/sites@2023-12-01' = {
  name: 'name'
  location: location
  properties: {
    serverFarmId: appServicePlan.id
  }
}

使用快速修复移除不必要的 dependsOn 条目:

屏幕截图显示如何将快速修复用于 no-unnecessary-dependson Linter 规则。

后续步骤

有关 Linter 的详细信息,请参阅使用 Bicep Linter