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.
Operator aksesor digunakan untuk mengakses sumber daya anak, properti pada objek, dan elemen dalam array. Anda juga dapat menggunakan aksesor properti untuk menggunakan beberapa fungsi.
| Pengoperasi | Nama |
|---|---|
[] |
Aksesor indeks |
[^index] |
Aksesor indeks terbalik |
. |
Pengaktor fungsi |
:: |
Aksesor sumber daya berlapis |
. |
Aksesor properti |
Aksesor indeks
array[integerIndex]
object['stringIndex']
Gunakan pengakses indeks untuk mendapatkan elemen dari array atau properti dari objek.
Untuk array, berikan indeks sebagai bilangan bulat. Bilangan bulat cocok dengan posisi elemen berbasis nol yang akan diambil.
Untuk objek, berikan indeks sebagai string. String cocok dengan nama objek yang akan diambil.
Contoh berikut mendapatkan elemen dalam array.
var arrayVar = [
'Coho'
'Contoso'
'Fabrikam'
]
output accessorResult string = arrayVar[1]
Output dari contoh:
| Nama | Tipe | Nilai |
|---|---|---|
| accessorResult | benang | 'Contoso' |
Contoh berikutnya mendapatkan properti pada objek.
var environmentSettings = {
dev: {
name: 'Development'
}
prod: {
name: 'Production'
}
}
output accessorResult string = environmentSettings['dev'].name
Output dari contoh:
| Nama | Tipe | Nilai |
|---|---|---|
| accessorResult | benang | 'Pengembangan' |
Aksesor indeks terbalik
Dimulai dengan Bicep CLI versi 0.34.x, operator pengakses indeks terbalik (^) memungkinkan Anda mengambil elemen dari array dengan menghitung dari akhir. Indeks berbasis satu ini berarti ^1 mengembalikan item terakhir, ^2 kedua hingga terakhir, dan sebagainya. Indeks harus berupa bilangan bulat positif yang lebih besar dari nol dan dapat ditentukan sebagai literal atau ekspresi yang mengevaluasi ke bilangan bulat.
array[^index]
Jika indeks melebihi panjang array, kesalahan kompilasi terjadi untuk indeks statis, atau kesalahan runtime terjadi untuk indeks dinamis.
Untuk array konstanta, operator dievaluasi pada waktu kompilasi. Untuk input dinamis, seperti parameter, evaluasi terjadi pada waktu penyebaran.
Contoh
var items = [
'apple'
'banana'
'orange'
'grape'
]
output secondToLast string = items[^2]
Output dari contoh:
| Nama | Tipe | Nilai |
|---|---|---|
| secondToLast | benang | 'oranye' |
Pengaktor fungsi
resourceName.functionName()
Dua fungsi - getSecret dan list* - mendukung operator aksesor untuk memanggil fungsi. Kedua fungsi ini adalah satu-satunya fungsi yang mendukung operator aksesor.
Contoh
Contoh berikut mereferensikan brankas kunci yang ada, lalu menggunakan getSecret untuk meneruskan rahasia ke modul.
resource kv 'Microsoft.KeyVault/vaults@2025-05-01' existing = {
name: kvName
scope: resourceGroup(subscriptionId, kvResourceGroup )
}
module sql './sql.bicep' = {
name: 'deploySQL'
params: {
sqlServerName: sqlServerName
adminLogin: adminLogin
adminPassword: kv.getSecret('vmAdminPassword')
}
}
Aksesor sumber daya berlapis
parentResource::nestedResource
Sumber daya berlapis adalah sumber daya yang dideklarasikan dalam sumber daya lain. Gunakan aksesor :: sumber daya berlapis untuk mengakses sumber daya berlapis tersebut dari luar sumber daya induk.
Dalam sumber daya induk, Anda mereferensikan sumber daya berlapis hanya dengan nama simbolis. Anda hanya perlu menggunakan aksesor sumber daya berlapis saat merujuk sumber daya berlapis dari luar sumber daya induk.
Contoh
Contoh berikut menunjukkan cara mereferensikan sumber daya berlapis dari dalam sumber daya induk dan dari luar sumber daya induk.
resource demoParent 'demo.Rp/parentType@2024-01-01' = {
name: 'demoParent'
location: 'West US'
// Declare a nested resource within 'demoParent'
resource demoNested 'childType' = {
name: 'demoNested'
properties: {
displayName: 'The nested instance.'
}
}
// Declare another nested resource
resource demoSibling 'childType' = {
name: 'demoSibling'
properties: {
// Use symbolic name to reference because this line is within demoParent
displayName: 'Sibling of ${demoNested.properties.displayName}'
}
}
}
// Use nested accessor to reference because this line is outside of demoParent
output displayName string = demoParent::demoNested.properties.displayName
Aksesor properti
objectName.propertyName
Gunakan aksesor properti untuk mengakses properti objek. Aksesor properti dapat digunakan dengan objek apa pun, termasuk parameter dan variabel yang merupakan objek. Anda mendapatkan kesalahan saat menggunakan akses properti pada ekspresi yang bukan objek.
Contoh
Contoh berikut menunjukkan variabel objek dan cara mengakses properti.
var x = {
y: {
z: 'Hello'
a: true
}
q: 42
}
output outputZ string = x.y.z
output outputQ int = x.q
Output dari contoh:
| Nama | Tipe | Nilai |
|---|---|---|
outputZ |
benang | 'Halo' |
outputQ |
bilangan bulat | 42 |
Biasanya, Anda menggunakan aksesor properti dengan sumber daya yang disebarkan dalam file Bicep. Contoh berikut membuat alamat IP publik dan menggunakan pengaktor properti untuk mengembalikan nilai dari sumber daya yang disebarkan.
resource publicIp 'Microsoft.Network/publicIPAddresses@2025-01-01' = {
name: publicIpResourceName
location: location
properties: {
publicIPAllocationMethod: dynamicAllocation ? 'Dynamic' : 'Static'
dnsSettings: {
domainNameLabel: publicIpDnsLabel
}
}
}
// Use property accessor to get value
output ipFqdn string = publicIp.properties.dnsSettings.fqdn
Langkah selanjutnya
- Untuk menjalankan contoh, gunakan Azure CLI atau Azure PowerShell untuk menyebarkan file Bicep.
- Untuk membuat file Bicep, lihat Mulai cepat: Membuat file Bicep dengan Visual Studio Code.
- Untuk informasi tentang cara mengatasi kesalahan jenis Bicep, lihat Fungsi untuk Bicep.