Правило Linter — что если короткое замыкание
Это правило определяет, когда значения среды выполнения передаются в качестве параметров модулям, которые, в свою очередь, используют их для определения идентификаторов ресурсов (например, когда параметр используется для определения имени, subscriptionId, resourceGroup, условия, области или apiVersion одного или нескольких ресурсов в модуле) и помечает, что если короткий канал.
Примечание.
Это правило по умолчанию отключено, измените уровень в bicepconfig.json , чтобы включить его.
Код правила анализатора кода
Для настройки параметров правил укажите в файле конфигурации Bicep следующее значение:
what-if-short-circuiting
Решение
Это правило проверяет значения среды выполнения, используемые для определения идентификаторов ресурсов в модулях. Он оповещает вас, если ваш код Bicep может привести к тому, что если короткое замыкание. В приведенном ниже примере appServiceOutputs и appServiceTests будут помечены для короткого замыкания, так как они передают значения среды выполнения в качестве параметров в модуль, который использует их при именовании ресурса:
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'
Чтобы избежать этой проблемы, используйте константы времени развертывания для значений, используемых при определении идентификаторов ресурсов.
Следующие шаги
Дополнительные сведения об анализаторе кода Bicep см. в разделе Использование анализатора кода Bicep.