Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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
Variabel tidak boleh memiliki nama yang sama dengan parameter, modul, atau sumber daya. Anda dapat menambahkan satu atau beberapa dekorator untuk setiap variabel. Untuk informasi selengkapnya, lihat cara menggunakan dekorator.
Variabel tanpa tipe
Saat Anda menentukan variabel tanpa menentukan jenis data, jenis disimpulkan dari nilai . Sintaks untuk mendefinisikan variabel tak bertipe adalah:
@<decorator>(<argument>)
var <variable-name> = <variable-value>
Contoh berikut mengatur variabel ke string.
var stringVar = 'preset variable'
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
Keluaran dari 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 mengembalikan nilai seperti output berikut:
"uniqueStorageName": {
"type": "String",
"value": "stghzuunrvapn6sw"
}
Variabel yang ditik
Dimulai dengan Bicep CLI versi 0.36.X, Bicep mendukung variabel yang diketik, di mana Anda secara eksplisit menyatakan jenis data variabel untuk memastikan keamanan jenis dan meningkatkan kejelasan kode. Manfaat variabel yang ditik:
- Deteksi kesalahan: Kompilator Bicep memvalidasi bahwa nilai yang ditetapkan cocok dengan jenis yang dinyatakan, menangkap kesalahan lebih awal.
- Kejelasan kode: Jenis eksplisit memperjelas jenis data apa yang dimiliki variabel.
- Dukungan Intellisense: Alat seperti Visual Studio Code menyediakan pelengkapan otomatis dan validasi yang lebih baik untuk variabel yang ditik.
- Keamanan pemfaktoran ulang: Memastikan bahwa perubahan pada penetapan variabel tidak secara tidak sengaja merusak ekspektasi tipe.
Untuk menentukan variabel yang ditik, gunakan var kata kunci diikuti dengan nama variabel, jenis, dan nilai yang ditetapkan:
var <variable-name> <data-type> = <variable-value>
Contoh berikut menunjukkan cara menentukan variabel yang ditik:
var resourceName string = 'myResource'
var instanceCount int = 3
var isProduction bool = true
var tags object = { environment: 'dev' }
var subnets array = ['subnet1', 'subnet2']
Untuk object jenis, Anda dapat menentukan skema untuk menerapkan struktur tertentu. Pengkompilasi memastikan objek mematuhi skema yang ditentukan.
var config {
name: string
count: int
enabled: bool
} = {
name: 'myApp'
count: 5
enabled: true
}
Contoh berikut menggunakan variabel yang diketik dengan dekorator untuk memberlakukan batasan:
@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'
}
}
Dalam contoh ini:
-
instanceCountditulis sebagaiintdan menggunakan ekspresi kondisional. -
resourcePrefixdititik sebagaistring. -
tagsditik sebagaiobjectdengan struktur tertentu.
Menggunakan perulangan berulang
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 |
|---|---|---|
| deskripsi | 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.
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.