Aracılığıyla paylaş


Bicep'teki değişkenler

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 tanımlama söz dizimi şöyledir:

@<decorator>(<argument>)
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ğerden çıkarılır. Aşağıdaki örnek bir değişkeni bir dizeye 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 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.

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.
export 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.

Export

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.

Değişkenler 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, değeri küçük harf yapmak storageNamePrefix için işlevini kullanırtoLower. İş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 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.