Regra de linter – sem entradas dependsOn desnecessárias

Essa regra detecta quando uma entrada dependsOn desnecessária foi adicionada a uma declaração de recurso ou módulo.

Código de regra linter

Use o seguinte valor no arquivo de configuração Bicep para personalizar as configurações de regra:

no-unnecessary-dependson

Solução

Para reduzir a confusão em seu modelo, exclua as entradas dependsOn que não forem necessárias. O Bicep infere automaticamente a maioria das dependências de recursos, desde que expressões de modelo referenciem outros recursos por meio de nomes simbólicos em vez de cadeias de caracteres com nomes ou IDs ou nomes embutidos em código.

O exemplo a seguir falha neste teste porque a entrada dependsOn appServicePlan é inferida automaticamente pelo Bicep implícita pela expressão appServicePlan.id (que faz referência ao nome simbólico do recurso appServicePlan) no valor da propriedade 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
  ]
}

Você pode corrigir isso removendo a entrada dependsOn desnecessária.

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
  }
}

Use a Correção Rápida para remover a entrada dependsOn desnecessária.

A captura de tela de Nenhuma regra de linter desnecessária com correção rápida.

Próximas etapas

Para saber mais sobre o linter, confira Usar o linter do Bicep.