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 512 variabel dalam file Bicep. Untuk informasi selengkapnya, lihat Batas templat.
Tentukan variabel
Sintaks untuk menentukan variabel adalah:
@<decorator>(<argument>)
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 dekorator
Dekorator ditulis dalam format @expression
dan ditempatkan di atas deklarasi variabel. Tabel berikut menunjukkan dekorator yang tersedia untuk variabel.
Dekorator | Argumen | Deskripsi |
---|---|---|
description | string | Berikan deskripsi untuk variabel . |
ekspor | tidak ada | Menunjukkan bahwa variabel tersedia untuk diimpor oleh file Bicep lain. |
Dekotaror berada dalam namespace layanan sys. Jika Anda perlu membedakan suatu dekorator dari item lainnya dengan nama yang sama, awali dekorator dengan sys
. Misalnya, jika file Bicep Anda menyertakan variabel bernama description
, Anda harus menambahkan namespace layanan sys saat menggunakan dekorator deskripsi .
Deskripsi
Untuk menambahkan penjelasan, tambahkan deskripsi ke deklarasi variabel. Contohnya:
@description('Create a unique storage account name.')
var storageAccountName = uniqueString(resourceGroup().id)
Teks berformat markdown dapat digunakan untuk teks deskripsi.
Ekspor
Gunakan @export()
untuk berbagi variabel dengan file Bicep lainnya. Untuk informasi selengkapnya, lihat Mengekspor variabel, jenis, dan fungsi.
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@2023-04-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.