Правило анализатора кода — отсутствие жестко заданных URL-адресов среды
Это правило находит все жестко заданные URL-адреса, которые зависят от облачной среды.
Код правила анализатора кода
Для настройки параметров правил укажите в файле конфигурации Bicep следующее значение:
no-hardcoded-env-urls
Решение
Вместо жесткого задания URL-адресов в файле Bicep используйте функцию environment для динамического получения URL-адресов во время развертывания. Функция environment возвращает разные URL-адреса в зависимости от облачной среды, где выполняется развертывание.
Следующий пример не проходит этот тест, так как URL-адрес задан жестко.
var managementURL = 'https://management.azure.com'
Тест также завершается ошибкой при использовании concat или uri.
var galleryURL1 = concat('https://','gallery.azure.com')
var galleryURL2 = uri('gallery.azure.com','test')
Это можно исправить, заменив жестко заданный URL-адрес функцией environment()
.
var galleryURL = environment().gallery
В некоторых случаях это можно исправить, получив свойство из развернутого ресурса. Например, вместо того чтобы создавать конечную точку для учетной записи хранения, извлеките ее с помощью .properties.primaryEndpoints
.
param storageAccountName string
param location string = resourceGroup().location
resource sa 'Microsoft.Storage/storageAccounts@2023-04-01' = {
name: storageAccountName
location: location
sku: {
name: 'Standard_LRS'
}
kind: 'StorageV2'
properties: {
accessTier: 'Hot'
}
}
output endpoint string = sa.properties.primaryEndpoints.web
Настройка
По умолчанию это правило использует следующие параметры для определения URL-адресов, которые являются запрещенными.
"analyzers": {
"core": {
"verbose": false,
"enabled": true,
"rules": {
"no-hardcoded-env-urls": {
"level": "warning",
"disallowedhosts": [
"gallery.azure.com",
"management.core.windows.net",
"management.azure.com",
"database.windows.net",
"core.windows.net",
"login.microsoftonline.com",
"graph.windows.net",
"trafficmanager.net",
"datalake.azure.net",
"azuredatalakestore.net",
"azuredatalakeanalytics.net",
"vault.azure.net",
"api.loganalytics.io",
"asazure.windows.net",
"region.asazure.windows.net",
"batch.core.windows.net"
],
"excludedhosts": [
"schema.management.azure.com"
]
}
}
}
}
Вы можете настроить его, добавив файл bicepconfig.json и применив новые параметры.
Следующие шаги
Дополнительные сведения об анализаторе кода Bicep см. в разделе Использование анализатора кода Bicep.