Bicep'teki değişkenler
Bu makalede, Bicep dosyanızda değişkenlerin nasıl tanımlanacağı ve kullanılacağı açıklanmaktadır. Bicep dosya geliştirmenizi basitleştirmek için değişkenleri kullanırsınız. Karmaşık ifadeleri Bicep dosyanızda yinelemek yerine karmaşık ifadeyi içeren bir değişken tanımlarsınız. Ardından, bu değişkeni Bicep dosyanızda gerektiği gibi kullanırsınız.
Resource Manager dağıtım işlemlerine başlamadan önce değişkenleri çözümler. Değişkenin Bicep dosyasında kullanıldığı her yerde Resource Manager değişkeni çözümlenen değerle değiştirir.
Bicep dosyasında 256 değişkenle sınırlısınız. Daha fazla bilgi için bkz . Şablon sınırları.
Değişken tanımlama
Değişken tanımlama söz dizimi şu şekildedir:
var <variable-name> = <variable-value>
Değişken parametre, modül veya kaynakla aynı ada sahip olamaz.
Değişken için bir veri türü belirtmediğinize dikkat edin. Tür değerinden çıkarılır. Aşağıdaki örnek bir dizeye bir değişken ayarlar.
var stringVar = 'example value'
Değişkeni oluştururken bir parametreden veya başka bir değişkenden gelen 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 şunu 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, depolama hesabı adı için bir dize değeri oluşturmak üzere Bicep işlevleri kullanılmaktadı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 yinelemeli döngüler kullanabilirsiniz. Aşağıdaki örnek, üç özelliğe sahip 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ğerlere sahip 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 yinelemeli döngüler.
Değişken kullanma
Aşağıdaki örnekte, bir kaynak özelliği için değişkenin nasıl kullanılacağı gösterilmektedir. Değişkenin adını sağlayarak değişkenin değerine başvurursunuz: storageName
.
param rgLocation string
param storageNamePrefix string = 'STG'
var storageName = '${toLower(storageNamePrefix)}${uniqueString(resourceGroup().id)}'
resource demoAccount 'Microsoft.Storage/storageAccounts@2023-04-01' = {
name: storageName
location: rgLocation
kind: 'Storage'
sku: {
name: 'Standard_LRS'
}
}
output stgOutput string = storageName
Depolama hesabı adlarının küçük harf kullanması gerektiğinden storageName
değişken toLower
, işlevi kullanarak değeri küçük harf yapar storageNamePrefix
. İşlev, uniqueString
kaynak grubu kimliğinden benzersiz bir değer oluşturur. Değerler bir dizeyle birleştirilir.
Yapılandırma değişkenleri
Bir ortamı yapılandırmak için ilgili değerleri tutan değişkenler tanımlayabilirsiniz. Değişkenini değerlerle bir nesne olarak tanımlarsınız. Aşağıdaki örnekte, test ve üretim gibi iki ortamın değerlerini tutan bir nesne gösterilmektedir. Dağıtım sırasında bu değerlerden birini geçirin.
@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 dizimini anlama.
- Döngü söz dizimlerini kullanma hakkında bilgi edinmek için bkz. Bicep'te yinelemeli döngüler.