Linter kuralı - parametre varsayılan değerlerinin dışında konum ifadesi yok
Bu kural, parametre varsayılan değerini bulur resourceGroup().location
veya deployment().location
bu değerin dışında kullanılır.
Linter kural kodu
Kural ayarlarını özelleştirmek için Bicep yapılandırma dosyasında aşağıdaki değeri kullanın:
no-loc-expr-outside-params
Çözüm
resourceGroup().location
ve deployment().location
yalnızca parametrenin varsayılan değeri olarak kullanılmalıdır.
Şablon kullanıcıları, kaynak oluşturabilecekleri bölgelere sınırlı erişime sahip olabilir. Kaynak grubu veya dağıtım kullanıcının erişemediği bir bölgede oluşturulduysa, ifadeler resourceGroup().location
veya deployment().location
kullanıcıları engelleyebilir ve bu da şablonu kullanmalarını engeller.
En iyi yöntem, kaynaklarınızın konumlarını ayarlamak için şablonunuzun adlı location
bir dize parametresine sahip olmasını önerir. Parametresini resourceGroup().location
deployment().location
varsayılan olarak veya şablonun location
başka bir yerinde kullanmak yerine kullanırsanız, şablonun kullanıcıları uygun olduğunda varsayılan değeri kullanabilir ancak gerektiğinde farklı bir konum da belirtebilir.
resource storageaccount 'Microsoft.Storage/storageAccounts@2023-04-01' = {
location: resourceGroup().location
}
Varsayılan olarak resourceGroup().location
şu yeni parametreyi kullanan bir location
özellik oluşturarak hatayı düzeltebilirsiniz:
param location string = resourceGroup().location
resource storageaccount 'Microsoft.Storage/storageAccounts@2023-04-01' = {
location: location
}
Aşağıdaki örnek, parametresini kullandığından resourceGroup().location
ancak parametre olmadığından bu testte location
başarısız oluyor:
var location = resourceGroup().location
Değişkeni bir parametreye dönüştürerek hatayı düzeltebilirsiniz:
param location string = resourceGroup().location
Bir aboneliğe, yönetim grubuna veya kiracıya dağıtmak için Azure PowerShell kullanıyorsanız, dışında location
bir parametre adı kullanmalısınız. New-AzDeployment, New-AzManagementGroupDeployment ve New-AzTenantDeployment komutlarının adlı location
bir parametresi vardır. Bu komut parametresi, Bicep dosyanızdaki parametreyle çakişer. gibi rgLocation
bir ad kullanarak bu çakışmayı önleyebilirsiniz.
New-AzResourceGroupDeployment adlı bir parametre olmadığından, kaynak grubuna dağıtırken parametre location
adı için kullanabilirsinizlocation
.
Sonraki adımlar
Lint hakkında daha fazla bilgi için bkz . Bicep linter'i kullanma.