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, Bicep dosyanızda değişkenleri tanımlama ve kullanma işlemleri 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ızın tamamında gerektiği gibi kullanırsınız.
Resource Manager, dağıtım işlemlerini başlatmadan ö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 512 değişkenle sınırlısınız. Daha fazla bilgi için bkz . Şablon sınırları.
Değişkenleri tanımlama
Değişken parametre, modül veya kaynakla aynı ada sahip olamaz. Her değişken için bir veya daha fazla dekoratör ekleyebilirsiniz. Daha fazla bilgi için bkz. Dekoratörleri kullanma.
Yazılmamış değişkenler
Veri türü belirtmeden bir değişken tanımladığınızda, tür değerden çıkarılır. Yazılmamış değişken tanımlama söz dizimi şöyledir:
@<decorator>(<argument>)
var <variable-name> = <variable-value>
Aşağıdaki örnek bir değişkeni bir dizeye ayarlar.
var stringVar = 'preset variable'
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
Önceki örnekteki çıkış ş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 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ğıdaki çıkışa benzer bir değer döndürür:
"uniqueStorageName": {
"type": "String",
"value": "stghzuunrvapn6sw"
}
Yazılan değişkenler
Bicep CLI sürüm 0.36.X'den başlayarak Bicep, tür güvenliğini sağlamak ve kod netliğini artırmak için bir değişkenin veri türünü açıkça bildirdiğiniz yazılan değişkenleri destekler. Türü belirlenmiş değişkenlerin avantajları:
- Hata algılama: Bicep derleyicisi, atanan değerlerin bildirilen türle eşleşip hataları erken yakaladığını doğrular.
- Kod netliği: Açık türler, bir değişkenin ne tür veriler içerdiğini açıkça belirtir.
- Intellisense desteği: Visual Studio Code gibi araçlar, yazılan değişkenler için daha iyi otomatik tamamlama ve doğrulama sağlar.
- Güvenliği yeniden düzenleme: Değişken atamalarındaki değişikliklerin istemeden tür beklentilerini kesmemesini sağlar.
Türü belirlenmiş bir değişken tanımlamak için anahtar sözcüğünü var ve ardından değişken adını, türünü ve atanan değeri kullanın:
var <variable-name> <data-type> = <variable-value>
Aşağıdaki örneklerde, yazılan değişkenlerin nasıl tanımlanacağı gösterilmektedir:
var resourceName string = 'myResource'
var instanceCount int = 3
var isProduction bool = true
var tags object = { environment: 'dev' }
var subnets array = ['subnet1', 'subnet2']
object türleri için belirli bir yapıyı sağlamak amacıyla bir şema tanımlayabilirsiniz. Derleyici, nesnenin tanımlı şemaya bağlı kalmasını sağlar.
var config {
name: string
count: int
enabled: bool
} = {
name: 'myApp'
count: 5
enabled: true
}
Aşağıdaki örnek, kısıtlamaları zorlamak için dekoratörlerle birlikte yazılan değişkenleri kullanır:
@description('The environment to deploy to')
@allowed(['dev', 'test', 'prod'])
param environment string = 'dev'
var instanceCount int = environment == 'prod' ? 5 : 2
var resourcePrefix string = 'app'
var tags {
environment: string
deployedBy: string
} = {
environment: environment
deployedBy: 'Bicep'
}
resource storage 'Microsoft.Storage/storageAccounts@2025-06-01' = {
name: '${resourcePrefix}storage${instanceCount}'
location: 'westus'
tags: tags
kind: 'Storage'
sku: {
name: 'Standard_LRS'
}
}
Bu örnekte:
-
instanceCountolarakintyazılır ve bir koşullu ifade kullanır. -
resourcePrefixolarakstringyazıldı. -
tags, belirli bir yapı ileobjectolarak yazılır.
Yinelemeli döngüleri kullanma
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.
Dekoratörleri kullanma
Dekoratörler biçiminde @expression yazılır ve değişken bildirimlerin üzerine yerleştirilir. Aşağıdaki tabloda değişkenler için kullanılabilir dekoratörler gösterilmektedir.
| Dekoratör | Bağımsız değişken | Açıklama |
|---|---|---|
| Açıklama | Dize | Değişkenin açıklamalarını sağlayın. |
| dışa aktarım | yok | Değişkenin başka bir Bicep dosyası tarafından içeri aktarılabilmesini gösterir. |
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ı descriptionbir değişken içeriyorsa, açıklama dekoratörü kullanılırken sys ad alanını eklemeniz gerekir.
Açıklama
Açıklama eklemek için değişken bildirimine bir açıklama ekleyin. Örneğin:
@description('Create a unique storage account name.')
var storageAccountName = uniqueString(resourceGroup().id)
Açıklama metni için Markdown biçimli metin kullanılabilir.
İhracat
Değişkeni diğer Bicep dosyalarıyla paylaşmak için kullanın @export() . Daha fazla bilgi için bkz . Değişkenleri, türleri ve işlevleri dışarı aktarma.
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 prod olmak üzere iki ortam için değerleri 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.