Règle Linter - court-circuitage de what-if
Cette règle détecte quand les valeurs d’exécution sont passées en tant que paramètres aux modules, qui à leur tour les utilisent pour déterminer les ID de ressource (par exemple, lorsque le paramètre est utilisé pour déterminer le nom, subscriptionId, resourceGroup, condition, étendue ou apiVersion d’une ou plusieurs ressources dans le module) et signale le risque de court-circuitage.
Remarque
Cette règle est désactivée par défaut, modifiez le niveau dans bicepconfig.json pour l’activer.
Code de règle de linter
Utilisez la valeur suivante dans le fichier config Bicep pour personnaliser les paramètres de règle :
what-if-short-circuiting
Solution
Cette règle vérifie les valeurs d’exécution utilisées pour déterminer les ID de ressource dans les modules. Il vous avertit si votre code Bicep peut entraîner un court-circuiting de type if. Dans l’exemple ci-dessous, appServiceOutputs et appServiceTests sont marqués pour le court-circuitage des scénarios, car ils transmettent des valeurs d’exécution en tant que paramètres au module, qui les utilise lors de l’affectation d’un nom à la ressource :
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'
Pour éviter ce problème, utilisez des constantes de temps de déploiement pour les valeurs utilisées pour déterminer les ID de ressource.
Étapes suivantes
Pour plus d’informations sur le linter, consultez Utiliser le linter Bicep.