Regola Linter - Corto circuito di simulazione
Questa regola rileva quando i valori di runtime vengono passati come parametri ai moduli, che a loro volta li usano per determinare gli ID risorsa (ad esempio quando il parametro viene usato per determinare il nome, subscriptionId, resourceGroup, condizione, ambito o apiVersion di una o più risorse all'interno del modulo) e contrassegna il potenziale corto circuito di simulazione.
Nota
Questa regola è disattivata per impostazione predefinita, modificare il livello in bicepconfig.json per abilitarla.
Codice regola Linter
Usa il seguente valore nel file di configurazione Bicep per personalizzare le impostazioni delle regole:
what-if-short-circuiting
Soluzione
Questa regola controlla la presenza di valori di runtime usati per determinare gli ID risorsa all'interno dei moduli. Avvisa l'utente se il codice Bicep potrebbe causare un corto circuito di simulazione. Nell'esempio seguente appServiceOutputs e appServiceTests vengono contrassegnati per il corto circuito di simulazione perché passano i valori di runtime come parametri al modulo, che li usa per la denominazione della risorsa:
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'
Per evitare questo problema, usare le costanti in fase di distribuzione per i valori usati per determinare gli ID risorsa.
Passaggi successivi
Per ulteriori informazioni su linter, vedere Usare linter di Bicep.