Bicep'te değişkenler
Bu makalede, Bicep dosyanız içinde değişkenleri tanımlama ve kullanma açıklanmıştır. Değişkenleri kullanarak Bicep dosya geliştirme sürecinizi basitleştirirsiniz. Bicep dosyanız genelinde karmaşık ifadeleri yinelemek yerine, karmaşık ifadeyi içeren bir değişken tanımlayın. Ardından bu değişkeni Bicep dosyanız boyunca gereken şekilde kullanabilirsiniz.
Resource Manager dağıtım işlemlerini başlatmadan önce değişkenleri çözümlemektedir. Değişken Bicep dosyasında nerede kullanılırsa Resource Manager çözümlenen değerle değiştirir.
Değişken tanımlama
Değişken tanımlama söz dizimi şu şekildedir:
var <variable-name> = <variable-value>
Değişkenin adı parametre, modül veya kaynakla aynı adla aynı olabilir.
değişkeni için bir veri türü belirtmeyebilirsiniz. Tür, değerinden inferred. Aşağıdaki örnek bir değişkeni dizeye ayarlar.
var stringVar = 'example value'
Değişkeni oluşturmak için bir parametre veya başka bir değişkenden değeri kullanabilirsiniz.
param inputValue string = 'deployment parameter'
var stringVar = 'preset variable'
var concatToVar = '${stringVar}AddToVar'
var concatToParam = '${inputValue}AddToParam'
output addToVar string = concatToVar
output addToParam string = concatToParam
Yukarıdaki örnek şunları döndürür:
{
"addToParam": {
"type": "String",
"value": "deployment parameterAddToParam"
},
"addToVar": {
"type": "String",
"value": "preset variableAddToVar"
}
}
Değişken değerini oluşturmak için Bicep işlevlerini kullanabilirsiniz. Aşağıdaki örnekte, bir depolama hesabı adı için dize değeri oluşturmak için Bicep işlevleri kullanılır.
param storageNamePrefix string = 'stg'
var storageName = '${toLower(storageNamePrefix)}${uniqueString(resourceGroup().id)}'
output uniqueStorageName string = storageName
Yukarıdaki örnek aşağıdakine benzer bir değer döndürür:
"uniqueStorageName": {
"type": "String",
"value": "stghzuunrvapn6sw"
}
Değişken tanımlarken tekrarlı döngüler kullanabilirsiniz. Aşağıdaki örnek, üç özelliği olan bir nesne dizisi oluşturur.
param itemCount int = 3
var objectArray = [for i in range(0, itemCount): {
name: 'myDataDisk${(i + 1)}'
diskSizeGB: '1'
diskIndex: i
}]
output arrayResult array = objectArray
Çıkış, aşağıdaki değerlerle bir dizi döndürür:
[
{
"name": "myDataDisk1",
"diskSizeGB": "1",
"diskIndex": 0
},
{
"name": "myDataDisk2",
"diskSizeGB": "1",
"diskIndex": 1
},
{
"name": "myDataDisk3",
"diskSizeGB": "1",
"diskIndex": 2
}
]
Değişkenlerle kullanabileceğiniz döngü türleri hakkında daha fazla bilgi için bkz. Bicep'te tekrarlı döngüler.
Değişken kullanma
Aşağıdaki örnekte, bir kaynak özelliği için değişkenin nasıl kullanımına sahip olduğu gösterir. Değişkenin adını sağlayarak değişkenin değerine başvururuz: storageName .
param rgLocation string
param storageNamePrefix string = 'STG'
var storageName = '${toLower(storageNamePrefix)}${uniqueString(resourceGroup().id)}'
resource demoAccount 'Microsoft.Storage/storageAccounts@2021-02-01' = {
name: storageName
location: rgLocation
kind: 'Storage'
sku: {
name: 'Standard_LRS'
}
}
output stgOutput string = storageName
Depolama hesabı adlarının küçük harfler kullanması gerek olduğundan storageName değişken, değeri toLower küçük harf yapmak için işlevini storageNamePrefix kullanır. İşlev, uniqueString kaynak grubu kimliğinden benzersiz bir değer oluşturur. Değerler bir dizeyle bir concatenated.
Yapılandırma değişkenleri
Bir ortamı yapılandırmak için ilgili değerlerin tutulacak değişkenleri tanımlayabilirsiniz. Değişkeni değerleriyle bir nesne olarak tanımlarsınız. Aşağıdaki örnek, test ve prod olmak için iki ortam için değerleri tutan bir nesneyi gösterir. Dağıtım sırasında bu değerlerden birini iletir.
@allowed([
'test'
'prod'
])
param environmentName string
var environmentSettings = {
test: {
instanceSize: 'Small'
instanceCount: 1
}
prod: {
instanceSize: 'Large'
instanceCount: 4
}
}
output instanceSize string = environmentSettings[environmentName].instanceSize
output instanceCount int = environmentSettings[environmentName].instanceCount
Sonraki adımlar
- Değişkenlerin kullanılabilir özellikleri hakkında bilgi edinmek için bkz. Bicep dosyalarının yapısını ve söz dizimlerini anlama.
- Döngü söz dizimi kullanma hakkında bilgi edinmek için bkz. Bicep'te döngüler.