Linter kuralı - modül konumu parametreleri için açık değerler kullanın
Bu kural, kaynak konumları için kullanılan modül parametrelerini bulur ve yanlışlıkla beklenmeyen bir değere varsayılan olarak ayarlanabilir.
Linter kural kodu
Kural ayarlarını özelleştirmek için Bicep yapılandırma dosyasında aşağıdaki değeri kullanın:
explicit-values-for-loc-params
Çözüm
Bir modülü kullandığınızda, varsayılan değere sahip konumla ilgili parametrelere açık bir değer atanmalıdır. Konumla ilgili parametreler, başvuruda resourceGroup().location
deployment().location
bulunan varsayılan değere sahip parametreleri ve ayrıca kaynağın konum özelliğinden başvurulan parametreleri içerir.
Kaynak grubunun veya dağıtımın konumunu varsayılan olarak belirten bir parametre, bir bicep dosyası ana dağıtım şablonu olarak kullanıldığında kullanışlıdır. Ancak modülde böyle bir varsayılan değer kullanıldığında, ana şablonun kaynakları kaynak grubuyla aynı bölgede yer almıyorsa beklenmeyen davranışlara neden olabilir.
Örnekler
Aşağıdaki örnek bu testi başarısız yapar. Modülün m1
parametresine location
açık bir değer atanmadığından, module1.bicep'te belirtildiği gibi varsayılan resourceGroup().location
olarak olur. Ancak main.bicep'teki diğer kaynaklar kaynak grubunun konumundan farklı bir konumda oluşturulabileceğinden, kaynak grubu konumunu kullanmak istenen davranış olmayabilir.
main.bicep:
param location string = 'eastus'
module m1 'module1.bicep' = {
name: 'm1'
}
resource storageaccount 'Microsoft.Storage/storageAccounts@2024-03-01' = {
name: 'storageaccount'
location: location
kind: 'StorageV2'
sku: {
name: 'Standard_LRS'
}
}
module1.bicep:
param location string = resourceGroup().location
resource stg 'Microsoft.Storage/storageAccounts@2024-03-01' = {
name: 'stg'
location: location
kind: 'StorageV2'
sku: {
name: 'Premium_LRS'
}
}
Modülün location
özelliği için açıkça bir değer geçirerek hatayı düzeltebilirsiniz:
main.bicep:
param location string = 'eastus'
module m1 'module1.bicep' = {
name: 'm1'
params: {
location: location // An explicit value will override the default value specified in module1.bicep
}
}
resource storageaccount 'Microsoft.Storage/storageAccounts@2024-03-01' = {
name: 'storageaccount'
location: location
kind: 'StorageV2'
sku: {
name: 'Standard_LRS'
}
}
Sonraki adımlar
Lint hakkında daha fazla bilgi için bkz . Bicep linter'i kullanma.