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.