Bicep'teki parametreler
Bu makalede, bicep dosyasında parametrelerin nasıl tanımlanacağı ve kullanılacağı açıklanmaktadır. Parametreler için farklı değerler sağlayarak bir Bicep dosyasını farklı ortamlar için yeniden kullanabilirsiniz.
Resource Manager, dağıtım işlemlerini başlatmadan önce parametre değerlerini çözümler. Parametrenin kullanıldığı her yerde Resource Manager, parametresini çözümlenen değerle değiştirir.
Her parametre veri türlerinden birine ayarlanmalıdır.
Bicep en fazla 256 parametreye izin verir. Daha fazla bilgi için bkz . Şablon sınırları.
Parametre en iyi yöntemleri için bkz . Parametreler.
Eğitim kaynakları
Adım adım yönergeler aracılığıyla parametreler hakkında bilgi edinmek isterseniz bkz . Parametreleri kullanarak yeniden kullanılabilir Bicep şablonları oluşturma.
Bildirim
Her parametrenin bir adı ve veri türü vardır. İsteğe bağlı olarak, parametresi için varsayılan bir değer sağlayabilirsiniz.
param <parameter-name> <parameter-data-type> = <default-value>
Parametrenin adı değişken, kaynak, çıkış veya aynı kapsamdaki başka bir parametreyle aynı olamaz.
Aşağıdaki örnekte parametrelerin temel bildirimleri gösterilmektedir.
param demoString string
param demoInt int
param demoBool bool
param demoObject object
param demoArray array
param
anahtar sözcüğü .bicepparam dosyalarında da kullanılır. .bicepparam dosyalarında, Bicep dosyalarında tanımlandığı gibi veri türünü belirtmeniz gerekmez.
param <parameter-name> = <value>
Daha fazla bilgi için bkz . Parametreler dosyası.
Kullanıcı tanımlı tür ifadeleri bir param
deyiminin tür yan tümcesi olarak kullanılabilir. Örneğin:
param storageAccountConfig {
name: string
sku: string
}
Daha fazla bilgi için bkz . Kullanıcı tanımlı veri türleri.
Default value
Parametre için varsayılan bir değer belirtebilirsiniz. Varsayılan değer, dağıtım sırasında bir değer sağlanmayan durumlarda kullanılır.
param demoParam string = 'Contoso'
İfadeleri varsayılan değerle kullanabilirsiniz. İfadelere diğer parametre özellikleriyle izin verilmez. Parametreler bölümündeki başvuru işlevini veya liste işlevlerinden herhangi birini kullanamazsınız. Bu işlevler kaynağın çalışma zamanı durumunu alır ve parametreler çözümlendiğinde dağıtımdan önce yürütülemez.
param location string = resourceGroup().location
Varsayılan bir değer oluşturmak için başka bir parametre değeri kullanabilirsiniz. Aşağıdaki şablon, site adından bir konak planı adı oluşturur.
param siteName string = 'site${uniqueString(resourceGroup().id)}'
param hostingPlanName string = '${siteName}-plan'
output siteNameOutput string = siteName
output hostingPlanOutput string = hostingPlanName
Ancak, bir değişkene varsayılan değer olarak başvuramazsınız.
Dekoratörler
Parametreler kısıtlamalar veya meta veriler için dekoratörleri kullanır. Dekoratörler biçimindedir @expression
ve parametrenin bildiriminin üzerine yerleştirilir. Bir parametreyi güvenli olarak işaretleyebilir, izin verilen değerleri belirtebilir, bir dize için en düşük ve en yüksek uzunluğu ayarlayabilir, bir tamsayı için en düşük ve en yüksek değeri ayarlayabilir ve parametrenin açıklamasını sağlayabilirsiniz.
Aşağıdaki örnekte dekoratörler için iki yaygın kullanım gösterilmektedir.
@secure()
param demoPassword string
@description('Must be at least Standard_A3 to support 2 NICs.')
param virtualMachineSize string = 'Standard_DS1_v2'
Aşağıdaki tabloda kullanılabilir dekoratörler ve bunların nasıl kullanılacağı açıklanmaktadır.
Dekoratör | Uygula | Bağımsız değişken | Açıklama |
---|---|---|---|
Izin verilen | tümü | dizi | Kullanıcının doğru değerler sağladığından emin olmak için bu dekoratörü kullanın. Bu dekoratöre yalnızca deyimlerde izin verilir param . Bir özelliğin veya output deyiminde type önceden tanımlanmış bir değer kümesinden biri olması gerektiğini bildirmek için birleşim türü söz dizimini kullanın. Birleşim türü söz dizimi deyimlerde param de kullanılabilir. |
Açıklama | tümü | Dize | parametresinin nasıl kullanılacağını açıklayan metin. Açıklama portal aracılığıyla kullanıcılara görüntülenir. |
maxLength | dizi, dize | int | Dize ve dizi parametreleri için uzunluk üst sınırı. Değer kapsayıcıdır. |
maxValue | int | int | Tamsayı parametresi için en büyük değer. Bu değer dahildir. |
meta veriler | tümü | nesne | parametresine uygulanacak özel özellikler. Açıklama dekoratörüne eşdeğer bir açıklama özelliği içerebilir. |
minLength | dizi, dize | int | Dize ve dizi parametreleri için en düşük uzunluk. Değer kapsayıcıdır. |
minValue | int | int | Tamsayı parametresi için en düşük değer. Bu değer dahildir. |
güvenli | dize, nesne | yok | parametresini güvenli olarak işaretler. Güvenli parametrenin değeri dağıtım geçmişine kaydedilmez ve günlüğe kaydedilmez. Daha fazla bilgi için bkz . Güvenli dizeler ve nesneler. |
Dekoratörler sys ad alanındadır. Dekoratörü aynı ada sahip başka bir öğeden ayırt etmeniz gerekiyorsa, dekoratörün önüne ile yazın sys
. Örneğin, Bicep dosyanız adlı description
bir parametre içeriyorsa, açıklama dekoratörü kullanılırken sys ad alanını eklemeniz gerekir.
@sys.description('The name of the instance.')
param name string
@sys.description('The description of the instance to display.')
param description string
Kullanılabilir dekoratörler aşağıdaki bölümlerde açıklanmıştır.
Güvenli parametreler
Dize veya nesne parametrelerini güvenli olarak işaretleyebilirsiniz. Güvenli parametrenin değeri dağıtım geçmişine kaydedilmez ve günlüğe kaydedilmez.
@secure()
param demoPassword string
@secure()
param demoSecretObject object
İzin verilen değerler
Bir parametre için izin verilen değerler tanımlayabilirsiniz. Bir dizide izin verilen değerleri sağlarsınız. İzin verilen değerlerden biri olmayan parametre için bir değer geçirilirse dağıtım doğrulama sırasında başarısız olur.
@allowed([
'one'
'two'
])
param demoEnum string
Dizi parametresi için izin verilen değerler tanımlarsanız, gerçek değer izin verilen değerlerin herhangi bir alt kümesi olabilir.
Uzunluk kısıtlamaları
Dize ve dizi parametreleri için en düşük ve en yüksek uzunlukları belirtebilirsiniz. Bir veya iki kısıtlama ayarlayabilirsiniz. Dizeler için uzunluk, karakter sayısını gösterir. Diziler için uzunluk, dizideki öğe sayısını gösterir.
Aşağıdaki örnekte iki parametre bildirmektedir. Bir parametre, 3-24 karakter uzunluğunda olması gereken bir depolama hesabı adıdır. Diğer parametre, 1-5 öğeden olması gereken bir dizidir.
@minLength(3)
@maxLength(24)
param storageAccountName string
@minLength(1)
@maxLength(5)
param appNames array
Tamsayı kısıtlamaları
Tamsayı parametreleri için en düşük ve en yüksek değerleri ayarlayabilirsiniz. Bir veya iki kısıtlama ayarlayabilirsiniz.
@minValue(1)
@maxValue(12)
param month int
Açıklama
Kullanıcıların sağlayabilecekleri değeri anlamasına yardımcı olmak için parametresine bir açıklama ekleyin. Kullanıcı şablonu portal aracılığıyla dağıttığında, açıklama metni otomatik olarak bu parametre için ipucu olarak kullanılır. Yalnızca metin parametre adından çıkarılabilenden daha fazla bilgi sağladığında açıklama ekleyin.
@description('Must be at least Standard_A3 to support 2 NICs.')
param virtualMachineSize string = 'Standard_DS1_v2'
Markdown biçimli metin, açıklama metni için kullanılabilir:
@description('''
Storage account name restrictions:
- Storage account names must be between 3 and 24 characters in length and may contain numbers and lowercase letters only.
- Your storage account name must be unique within Azure. No two storage accounts can have the same name.
''')
@minLength(3)
@maxLength(24)
param storageAccountName string
İmlecinizi VS Code'da storageAccountName öğesinin üzerine getirdiğinizde, biçimlendirilmiş metni görürsünüz:
Metnin düzgün Markdown biçimlendirmesine uydığından emin olun; aksi takdirde, işlendiğinde doğru görüntülenmeyebilir.
Meta veri
Bir parametreye uygulamak istediğiniz özel özellikleriniz varsa, bir meta veri dekoratörü ekleyin. Meta veriler içinde, özel adlara ve değerlere sahip bir nesne tanımlayın. Meta veriler için tanımladığınız nesne herhangi bir adın ve türün özelliklerini içerebilir.
Açıklamaya eklemek için anlamlı olmayan parametre hakkındaki bilgileri izlemek için bu dekoratörü kullanabilirsiniz.
@description('Configuration values that are applied when the application starts.')
@metadata({
source: 'database'
contact: 'Web team'
})
param settings object
Bir dekoratöre başka bir @metadata()
dekoratörle çakşan bir özellik sağladığınızda, bu dekoratör her zaman dekoratördeki @metadata()
her şeyden öncelikli olur. Bu nedenle, değerin @metadata()
içindeki çakışan özellik yedeklidir ve değiştirilecektir. Daha fazla bilgi için bkz . Çakışan meta veri yok.
Parametre kullanma
Parametrenin değerine başvurmak için parametre adını kullanın. Aşağıdaki örnekte anahtar kasası adı için parametre değeri kullanılmaktadır.
param vaultName string = 'keyVault${uniqueString(resourceGroup().id)}'
resource keyvault 'Microsoft.KeyVault/vaults@2019-09-01' = {
name: vaultName
...
}
Parametre olarak nesneler
İlgili değerleri nesne olarak geçirerek düzenlemek daha kolay olabilir. Bu yaklaşım şablondaki parametre sayısını da azaltır.
Aşağıdaki örnekte nesne olan bir parametre gösterilmektedir. Varsayılan değer, nesne için beklenen özellikleri gösterir. Bu özellikler, dağıtılacak kaynağı tanımlarken kullanılır.
param vNetSettings object = {
name: 'VNet1'
location: 'eastus'
addressPrefixes: [
{
name: 'firstPrefix'
addressPrefix: '10.0.0.0/22'
}
]
subnets: [
{
name: 'firstSubnet'
addressPrefix: '10.0.0.0/24'
}
{
name: 'secondSubnet'
addressPrefix: '10.0.1.0/24'
}
]
}
resource vnet 'Microsoft.Network/virtualNetworks@2023-11-01' = {
name: vNetSettings.name
location: vNetSettings.location
properties: {
addressSpace: {
addressPrefixes: [
vNetSettings.addressPrefixes[0].addressPrefix
]
}
subnets: [
{
name: vNetSettings.subnets[0].name
properties: {
addressPrefix: vNetSettings.subnets[0].addressPrefix
}
}
{
name: vNetSettings.subnets[1].name
properties: {
addressPrefix: vNetSettings.subnets[1].addressPrefix
}
}
]
}
}
Sonraki adımlar
- Parametrelerin kullanılabilir özellikleri hakkında bilgi edinmek için bkz . Bicep dosyalarının yapısını ve söz dizimini anlama.
- Parametre değerlerini dosya olarak geçirme hakkında bilgi edinmek için bkz . Bicep parametre dosyası oluşturma.
- Dağıtımda parametre değerleri sağlama hakkında bilgi edinmek için bkz . Azure CLI ile dağıtma ve Azure PowerShell ile dağıtma.