Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, bir Bicep dosyasında parametrelerin nasıl tanımlanacağı ve kullanılacağı açıklanmaktadır. Parametreler için farklı değerler sağlayarak, farklı ortamlar için bir Bicep dosyasını yeniden kullanabilirsiniz.
Azure Resource Manager, dağıtım işlemlerini başlatmadan önce parametre değerlerini çözümler. parametresi nerede kullanılırsa kullansın 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.
Parametreleri tanımla
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.
@<decorator>(<argument>)
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
Anahtar param sözcüğü dosyalarda .bicepparamda kullanılır. Bicep dosyalarında tanımlandığından .bicepparam dosyalarında veri türünü belirtmeniz gerekmez.
param <parameter-name> = <value>
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, Bicep'te Kullanıcı tarafından tanımlanan veri türlerine bakın.
Varsayılan değerleri ayarlama
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.
reference işlevini veya parametreler bölümündeki list işlevlerin hiç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 barındırma 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örleri kullanma
Parametreler kısıtlamalar veya meta veriler için dekoratörleri kullanır. Dekoratörler @expression biçimindedir ve parametrenin bildiriminin üstüne yerleştirilir. Aşağıdaki tabloda parametreler için kullanılabilir dekoratörler gösterilmektedir:
| Dekoratör | Başvur | Tartışma | 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 param deyimlerinde izin verilir. Bir özelliğin veya type deyiminde output ö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 de param deyimlerde kullanılabilir. |
| Açıklama | tümü | String | parametresinin nasıl kullanılacağını açıklayan metin. Açıklama, Azure portalında kullanıcılara görüntülenir. |
| Ayrıştırıcı | nesne | String | Doğru alt sınıfın tanımlandığından ve yönetildiğinden emin olmak için bu dekoratörü kullanın. Daha fazla bilgi için Özel etiketli birleşim veri türü'ne bakın. |
| 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 kapsam dahiline alınmıştır. |
| meta veriler | tümü | nesne | parametresine uygulanacak özel özellikler. Açıklama dekoratörüne eşdeğer olan 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 kapsam dahiline alınmıştır. |
| mühürlenmiş | nesne | yok | BCP089'ı, bir kullanıcı tanımlı veri türünün özellik adının yazım hatası olabileceği durumlarda, bir uyarıdan hataya yükseltin. Daha fazla bilgi için Hata düzeyini yükselt başlıklı bölüme bakın. |
| 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 de alınmaz. Daha fazla bilgi için bkz . Güvenli dizeler ve nesneler. |
Dekoratörler sys ad alanı içindedir. Dekoratörü aynı ada sahip başka bir öğeden ayırt etmeniz gerekiyorsa, dekoratörün başına sys yazın. Örneğin, Bicep dosyanız description adlı bir parametre içeriyorsa, description 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
İ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.
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 Azure portalı üzerinden 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 can only contain numbers and lowercase letters.
- 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 Visual Studio Code storageAccountName ü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.
Ayrıştırıcı
Bkz. Özel etiketli birleşim veri türü.
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
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 ile 24 karakter arasında olması gereken bir depolama hesabı adıdır. Diğer parametre, 1 ile 5 arasında öğeye sahip olması gereken bir dizidir.
@minLength(3)
@maxLength(24)
param storageAccountName string
@minLength(1)
@maxLength(5)
param appNames array
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.
Bu dekoratörü, açıklamaya eklenmesi anlamlı olmayan parametrelere ilişkin bilgileri izlemek için 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 dekoratörle çakışan bir özellik sağladığınızda @metadata(), bu dekoratör @metadata() dekoratöründeki her şeyden daha önceliklidir, bu nedenle @metadata() değeri içindeki çakışan özellik gereksiz olur ve değiştirilir. Daha fazla bilgi için bkz. Linter kuralı - çakışan meta veri yok.
Mühürlü
Bkz . Hata düzeyini yükseltme.
Güvenli parametreler
Dize veya nesne parametrelerini güvenli olarak işaretleyebilirsiniz. Bir parametre @secure() ile donatıldığında, Azure Resource Manager parametre değerini hassas olarak değerlendirir ve bunun dağıtım geçmişinde, Azure portalında veya komut satırı çıkışlarında günlüğe kaydedilmesini veya görüntülenmesini önler.
@secure()
param demoPassword string
@secure()
param demoSecretObject object
Bu dekoratörle ilgili birkaç linter kuralı vardır: Güvenli parametre varsayılanı, İç içe dağıtımlarda güvenli parametreler, Parametrelerde gizli dizileri güvenli duruma getirmek.
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@2025-05-01' = {
name: vaultName
...
}
Dekoratör @secure() yalnızca dize veya nesne türündeki parametreler için geçerlidir, bunlar ARM şablonlarındaki secureString ve secureObject türleriyle uyumlu olduğundan. Dizileri veya sayıları güvenli bir şekilde geçirmek için bunları ya bir SecureObject içinde sarmalayın ya da SecureString olarak serileştirin.
Nesneleri parametre olarak kullanma
İ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@2025-01-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
- Parametreler için kullanılabilen özellikler hakkında bilgi edinmek için bkz. Bicep dosya yapısı ve söz dizimi.
- Parametre değerlerini dosya olarak geçirme hakkında bilgi edinmek için bkz. Bicep dağıtımı için parametre dosyası oluşturma.
- Dağıtım sırasında parametre değerleri sağlama hakkında bilgi edinmek için Azure CLI ile Bicep dosyalarını dağıtma ve Azure PowerShell'e bakınız.