Teilen über


Linter-Regel – Was-wäre-wenn-Kurzschluss

Diese Regel erkennt, wann Laufzeitwerte als Parameter an Module übergeben werden, die sie wiederum verwenden, um Ressourcen-IDs zu bestimmen (z. B. wenn der Parameter verwendet wird, um den Namen, subscriptionId, resourceGroup, Condition, Scope oder apiVersion einer oder mehrerer Ressourcen innerhalb des Moduls zu bestimmen) und kennzeichnet potenzielle Was-wäre-wenn-Kurzschlusse.

Hinweis

Diese Regel ist standardmäßig deaktiviert, ändern Sie die Ebene in bicepconfig.json, um sie zu aktivieren.

Linter-Regelcode

Verwenden Sie den folgenden Wert in der Bicep-Konfigurationsdatei, um die Regeleinstellungen anzupassen:

what-if-short-circuiting

Lösung

Diese Regel sucht nach Laufzeitwerten, die verwendet werden, um Ressourcen-IDs innerhalb von Modulen zu ermitteln. Sie werden benachrichtigt, wenn Ihr Bicep-Code zu Was-wäre-wenn-Kurzschluss führen könnte. Im folgenden Beispiel würden appServiceOutputs und appServiceTests für was-wäre-wenn-Kurzschluss gekennzeichnet, da sie Laufzeitwerte als Parameter an das Modul übergeben, was sie beim Benennen der Ressource verwendet:

main.bicep

resource storageAccount 'Microsoft.Storage/storageAccounts@2023-05-01' = {
  name: 'storageAccountName'
  location: 'eastus'
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
}

module appServiceModule 'modules/appService.bicep' = {
  name: 'appService2'
  params: {
    appServiceName: 'test'
  }
}

module appServiceOutputs 'modules/appService.bicep' = {
  name: 'appService3'
  params: {
    appServiceName: appServiceModule.outputs.outputName
  }
}

module appServiceTest 'modules/appService.bicep' = {
  name:'test3'
  params: {
    appServiceName: storageAccount.properties.accessTier
  }
}

modules/appService.bicep

param appServiceName string

resource appServiceApp 'Microsoft.Web/sites@2023-12-01' = {
  name: appServiceName
  location: 'eastus'
  properties: {
    httpsOnly: true
  }
}

output outputName string = 'outputName'

Um dieses Problem zu vermeiden, verwenden Sie Bereitstellungszeitkonstanten für Werte, die bei der Ermittlung von Ressourcen-IDs verwendet werden.

Nächste Schritte

Weitere Informationen über den Linter finden Sie unter Verwendung des Bicep-Linters.