Regra de Linter - hipotético curto-circuito
Essa regra detecta quando os valores de runtime são passados como parâmetros para módulos, que, por sua vez, os usam para determinar IDs de recursos (como quando o parâmetro é usado para determinar o nome, subscriptionId, resourceGroup, condition, escopo ou apiVersion de um ou mais recursos dentro do módulo) e sinaliza possíveis curtos-circuitos hipotéticos.
Observação
Essa regra está desativada por padrão. Altere o nível em bicepconfig.json para habilitá-la.
Código de regra linter
Use o seguinte valor no arquivo de configuração Bicep para personalizar as configurações de regra:
what-if-short-circuiting
Solução
Essa regra verifica os valores de tempo de execução usados para determinar IDs de recursos dentro dos módulos. Ele alerta se o código do Bicep pode causar um curto-circuito hipotético. No exemplo abaixo, appServiceOutputs e appServiceTests seriam sinalizados para curto-circuito hipotético porque eles passam valores de runtime como parâmetros para o módulo, que os usa ao nomear o 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 esse problema, use constantes de tempo de implantação para valores usados na determinação de IDs de recursos.
Próximas etapas
Para saber mais sobre o linter, confira Usar o linter do Bicep.