Condividi tramite


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.