Variabel dalam Bicep
Artikel ini menjelaskan cara menentukan dan menggunakan parameter dalam file Bicep. Anda menggunakan variabel untuk menyederhanakan pengembangan file Bicep Anda. Daripada mengulangi ekspresi rumit di seluruh templat Anda, Anda tentukan variabel yang berisi ekspresi rumit. Kemudian, Anda gunakan variabel tersebut sesuai kebutuhan di seluruh file Bicep Anda.
Resource Manager menyelesaikan nilai parameter sebelum memulai operasi penyebaran. Di mana pun parameter digunakan dalam file Bicep, Azure Resource Manager menggantinya dengan nilai yang diselesaikan.
Anda dibatasi hingga 256 variabel dalam file Bicep. Untuk informasi selengkapnya, lihat Batas templat.
Menentukan variabel
Sintaks untuk menentukan variabel adalah:
var <variable-name> = <variable-value>
Variabel tidak boleh memiliki nama yang sama dengan parameter, modul, atau sumber daya.
Perhatikan bahwa Anda tidak menentukan jenis data untuk variabel. Jenis ini disimpulkan dari nilai. Contoh berikut mengatur variabel ke string.
var stringVar = 'example value'
Anda dapat menggunakan nilai dari parameter atau variabel lain saat membuat variabel.
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
Contoh sebelumnya menampilkan:
{
"addToParam": {
"type": "String",
"value": "deployment parameterAddToParam"
},
"addToVar": {
"type": "String",
"value": "preset variableAddToVar"
}
}
Anda dapat menggunakan fungsi Bicep untuk membuat nilai variabel. Contoh berikut menggunakan fungsi Bisep untuk membuat nilai string untuk nama akun penyimpanan.
param storageNamePrefix string = 'stg'
var storageName = '${toLower(storageNamePrefix)}${uniqueString(resourceGroup().id)}'
output uniqueStorageName string = storageName
Contoh sebelumnya menampilkan nilai seperti berikut ini:
"uniqueStorageName": {
"type": "String",
"value": "stghzuunrvapn6sw"
}
Anda dapat menggunakan perulangan iteratif saat menentukan variabel. Contoh berikut membuat array objek dengan tiga properti.
param itemCount int = 3
var objectArray = [for i in range(0, itemCount): {
name: 'myDataDisk${(i + 1)}'
diskSizeGB: '1'
diskIndex: i
}]
output arrayResult array = objectArray
Output menghasilkan array dengan nilai-nilai berikut:
[
{
"name": "myDataDisk1",
"diskSizeGB": "1",
"diskIndex": 0
},
{
"name": "myDataDisk2",
"diskSizeGB": "1",
"diskIndex": 1
},
{
"name": "myDataDisk3",
"diskSizeGB": "1",
"diskIndex": 2
}
]
Untuk informasi selengkapnya tentang jenis perulangan yang dapat Anda gunakan dengan variabel, lihat Perulangan Iteratif di Bisep.
Menggunakan variabel
Contoh berikut menunjukkan cara menggunakan variabel untuk properti sumber daya. Anda mereferensikan nilai variabel dengan memberikan nama variabel: 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
Karena nama akun penyimpanan harus menggunakan huruf kecil, storageName
variabel menggunakan toLower
fungsi untuk membuat storageNamePrefix
nilai huruf kecil. Fungsi ini uniqueString
menciptakan nilai unik dari ID grup sumber daya. Nilai digabungkan ke string.
Variabel konfigurasi
Anda dapat menahan variabel yang menyimpan nilai terkait untuk mengonfigurasi lingkungan. Anda tentukan variabel sebagai objek dengan nilai. Contoh berikut menunjukkan objek yang menahan nilai untuk dua lingkungan - uji dan prod. Masukkan salah satu nilai tersebut selama penyebaran.
@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
Langkah berikutnya
- Untuk mempelajari tentang properti yang tersedia untuk variabel, lihat Memahami struktur dan sintaksis file Bicep.
- Untuk mempelajari tentang menggunakan sintaks perulangan, lihat Perulangan Iteratif di Bisep.