Bıcep içindeki parametreler
Bu makalede, bir bicep dosyasında parametrelerin nasıl tanımlanacağı ve kullanılacağı açıklanmaktadır. Parametreler için farklı değerler sunarak, bir Bıcep dosyasını farklı ortamlar için yeniden kullanabilirsiniz.
Kaynak Yöneticisi, dağıtım işlemlerini başlatmadan önce parametre değerlerini çözer. Parametrenin kullanıldığı her yerde, Kaynak Yöneticisi çözümlenen değer ile değiştirilir.
Her parametrenin veri türlerindenbirine ayarlanması gerekir.
Microsoft Learn
Parametreler hakkında daha fazla bilgi edinmek ve uygulamalı yönergeler için bkz. Microsoft Learn parametreleri kullanarak yeniden kullanılabilir bıcep ş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>
Bir parametre aynı ada sahip bir değişken, kaynak, çıkış veya diğer parametre ile aynı ada sahip olamaz.
Aşağıdaki örnek parametrelerin temel bildirimlerini gösterir.
param demoString string
param demoInt int
param demoBool bool
param demoObject object
param demoArray array
Varsayılan değer
Bir parametre için varsayılan bir değer belirtebilirsiniz. Dağıtım sırasında bir değer sağlanmamışsa varsayılan değer kullanılır.
param demoParam string = 'Contoso'
Varsayılan değer ile ifadeleri kullanabilirsiniz. Diğer parametre özellikleriyle ifadelere izin verilmez. Parameters bölümünde 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 de 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
Dekoratörler
Parametreler, kısıtlamalar veya meta veriler için dekoratörler kullanır. Dekoratörler biçimindedir @expression ve parametre bildiriminin üstüne yerleştirilir. Bir parametreyi güvenli olarak işaretleyebilir, izin verilen değerler belirtebilir, bir dize için minimum ve maksimum uzunluğu ayarlayabilir, bir tamsayı için en düşük ve en büyük değeri ayarlayabilir ve parametresi için bir açıklama sağlayabilirsiniz.
Aşağıdaki örnek, dekoratörler için iki ortak kullanımı gösterir.
@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ü | array | Parametre için izin verilen değerler. Kullanıcının doğru değerler sağladığından emin olmak için bu dekoratörü kullanın. |
| açıklaması | tümü | string | Parametresinin nasıl kullanılacağını açıklayan metin. Açıklama, portalda kullanıcılar için görüntülenir. |
| 'In | dizi, dize | int | Dize ve dizi parametreleri için uzunluk üst sınırı. Değer dahil değildir. |
| Değerini | int | int | Integer parametresinin en büyük değeri. Bu değer dahil değildir. |
| meta veriler | tümü | object | Parametreye uygulanacak özel özellikler. Açıklama dekoratörü ile eşdeğer bir açıklama özelliği içerebilir. |
| minLength | dizi, dize | int | Dize ve dizi parametreleri için minimum uzunluk. Değer dahil değildir. |
| minValue | int | int | Integer parametresinin en küçük değeri. Bu değer dahil değildir. |
| güvende | dize, nesne | yok | Parametreyi güvenli olarak işaretler. Güvenli bir parametre 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ıdır. Bir dekoratörü aynı ada sahip başka bir öğeden ayırt etmeniz gerekiyorsa, dekoratörü ile birlikte sys . Örneğin, Bıcep dosyanız adlı bir parametre içeriyorsa description , 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 bir 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ğerleri tanımlayabilirsiniz. Bir dizide izin verilen değerleri sağlarsınız. İzin verilen değerlerden biri olmayan bir parametre için bir değer geçirilirse, doğrulama sırasında dağıtım başarısız olur.
@allowed([
'one'
'two'
])
param demoEnum string
Uzunluk kısıtlamaları
Dize ve dizi parametreleri için minimum ve maksimum uzunlukları belirtebilirsiniz. Bir veya her iki kısıtlamayı da ayarlayabilirsiniz. Dizeler için uzunluk, karakter sayısını belirtir. Diziler için, Uzunluk dizideki öğelerin sayısını belirtir.
Aşağıdaki örnek iki parametre bildirir. Tek parametre 3-24 karakter uzunluğunda olması gereken depolama hesabı adına yöneliktir. 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 her iki kısıtlamayı da ayarlayabilirsiniz.
@minValue(1)
@maxValue(12)
param month int
Açıklama
Kullanıcılara sağlanacak değeri anlamalarına yardımcı olmak için parametreye bir açıklama ekleyin. Şablonu Portal üzerinden dağıttığınızda, açıklamanın metni bu parametre için bir ipucu olarak otomatik olarak kullanılır. Yalnızca metin, parametre adından çıkarsandan daha fazla bilgi sağlıyorsa açıklama ekleyin.
@description('Must be at least Standard_A3 to support 2 NICs.')
param virtualMachineSize string = 'Standard_DS1_v2'
Parametre kullan
Bir parametre için değere başvurmak üzere parametre adını kullanın. Aşağıdaki örnek, bir Anahtar Kasası adı için bir parametre değeri kullanır.
param vaultName string = 'keyVault${uniqueString(resourceGroup().id)}'
resource keyvault 'Microsoft.KeyVault/vaults@2019-09-01' = {
name: vaultName
...
}
Parametre olarak nesneler
İlgili değerleri bir nesne olarak geçirerek düzenlemek daha kolay olabilir. Bu yaklaşım ayrıca şablondaki parametre sayısını azaltır.
Aşağıdaki örnek bir nesnesi olan bir parametresini gösterir. 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@2020-06-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. Bıcep dosyalarının yapısını ve sözdizimini anlayın.
- Parametre değerlerini bir dosya olarak geçirme hakkında bilgi edinmek için bkz. Bıcep parametre dosyası oluşturma.