Delen via


Linter-regel - wat-als-kortsluiting

Deze regel detecteert wanneer runtime-waarden worden doorgegeven als parameters aan modules, die deze op hun beurt gebruiken om resource-id's te bepalen (bijvoorbeeld wanneer de parameter wordt gebruikt om de naam, subscriptionId, resourceGroup, voorwaarde, bereik of apiVersion van een of meer resources binnen de module) te bepalen en markeert mogelijke wat-als-kortsluiting.

Notitie

Deze regel is standaard uitgeschakeld, wijzig het niveau in bicepconfig.json om deze in te schakelen.

Linter-regelcode

Gebruik de volgende waarde in het Bicep-configuratiebestand om regelinstellingen aan te passen:

what-if-short-circuiting

Oplossing

Met deze regel wordt gecontroleerd op runtimewaarden die worden gebruikt om resource-id's in modules te bepalen. Het waarschuwt u als uw Bicep-code wat-als-kortsluiting kan veroorzaken. In het onderstaande voorbeeld worden appServiceOutputs en appServiceTests gemarkeerd voor wat-als-kortsluiting, omdat ze runtimewaarden doorgeven als parameters aan de module, die deze gebruikt bij het benoemen van de resource:

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'

U kunt dit probleem voorkomen door implementatietijdconstanten te gebruiken voor waarden die worden gebruikt bij het bepalen van resource-id's.

Volgende stappen

Zie Bicep linter gebruiken voor meer informatie over de linter.