Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это правило обнаруживает, что resourceGroup().location
или deployment().location
отличаются от значения параметра по умолчанию.
Для настройки параметров правил укажите в файле конфигурации Bicep следующее значение:
no-loc-expr-outside-params
resourceGroup().location
и deployment().location
должны использоваться только в качестве значения параметра по умолчанию.
Пользователи шаблонов могут иметь ограниченный доступ к регионам, в которых они могут создавать ресурсы. Выражения resourceGroup().location
или deployment().location
могут блокировать пользователей, если группа ресурсов или развертывание было созданы в регионе, к которому пользователь не может получить доступ, что не позволяет ему использовать шаблон.
Существует следующая рекомендация: чтобы задать расположения ресурсов, шаблон должен иметь строковый параметр с именем location
. Если параметр location
по умолчанию имеет значение resourceGroup().location
или deployment().location
, а не использует этих функции в другом месте шаблона, пользователи шаблона могут применять такое значение по умолчанию, если это удобно. Но при необходимости можно указать другое расположение.
resource storageaccount 'Microsoft.Storage/storageAccounts@2023-04-01' = {
location: resourceGroup().location
}
Для исправления ошибки можно создать свойство location
, которое по умолчанию имеет значение resourceGroup().location
, и использовать этот новый параметр.
param location string = resourceGroup().location
resource storageaccount 'Microsoft.Storage/storageAccounts@2023-04-01' = {
location: location
}
Следующий пример не проходит этот тест, так как location
использует resourceGroup().location
, но не является параметром.
var location = resourceGroup().location
Для исправления этой ошибки превратите переменную в параметр:
param location string = resourceGroup().location
Если вы выполняете развертывание в подписке, группе управления или клиенте с помощью Azure PowerShell, имя параметра должно отличаться от location
. Параметр с именем location
используется в командах New-AzDeployment, New-AzManagementGroupDeployment и New-AzTenantDeployment, поэтому он конфликтует с параметром в вашем файле Bicep. Чтобы избежать конфликта, используйте другое имя, например rgLocation
.
Вы можете использовать имя location
при развертывании в группе ресурсов, так как у New-AzResourceGroupDeployment нет параметра с именем location
.
Дополнительные сведения об анализаторе кода Bicep см. в разделе Использование анализатора кода Bicep.