共用方式為


Linter 規則 - 非必要的 dependsOn 項目

此規則會查找何時資源或模組宣告中加入了不必要的 dependsOn 專案。

Linter 規則程式碼

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

no-unnecessary-dependson

解決方案

若要減少範本中的混淆,請刪除任何不必要的 dependsOn 項目。 只要範本運算式透過符號名稱參考其他資源,而不是使用硬式編碼識別碼或名稱的字串,Bicep 就會自動推斷大部分的資源相依性。

下列範例會導致此測試失敗,因為 dependsOn 專案 appServicePlan 是由運算式 appServicePlan.id 隱含的 Bicep 所自動推斷,(參考資源符號名稱 appServicePlan) 在 serverFarmId 屬性值中。

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 項目。

[沒有不必要的相依性規則與快速修正] 的螢幕快照。

下一步

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