Regla linter: cortocircuito hipotérico
Esta regla detecta cuándo se pasan valores en tiempo de ejecución como parámetros a los módulos, que a su vez los usan para determinar los identificadores de recursos (por ejemplo, cuando se usa el parámetro para determinar el nombre, subscriptionId, resourceGroup, condición, ámbito o apiVersion de uno o varios recursos dentro del módulo) y marca posibles errores de cortocircuito.
Nota:
Esta regla está desactivada de forma predeterminada, cambie el nivel de bicepconfig.json para habilitarla.
Código de regla de linter
Use el valor siguiente del archivo de configuración de Bicep para personalizar los valores de regla:
what-if-short-circuiting
Solución
Esta regla comprueba si hay valores en tiempo de ejecución que se usan para determinar los identificadores de recursos dentro de los módulos. Le avisa si el código de Bicep podría provocar un cortocircuito. En el ejemplo siguiente, appServiceOutputs y appServiceTests se marcarían para el cortocircuito what-if porque pasan valores en tiempo de ejecución como parámetros al módulo, que los usa al asignar un nombre al recurso:
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'
Para evitar este problema, use constantes en tiempo de implementación para los valores que se usan para determinar los identificadores de recursos.
Pasos siguientes
Para obtener más información acerca de linter, consulte Uso de linter de Bicep.