Operator pengakses Bicep
Operator pengakses digunakan untuk mengakses sumber daya anak, properti pada objek, dan element dalam array. Anda juga dapat menggunakan pengakses properti untuk menggunakan beberapa fungsi.
Operator | Nama |
---|---|
[] |
Pengakses indeks |
. |
Pengakses fungsi |
:: |
Pengakses sumber daya bersarang |
. |
Pengakses properti |
Pengakses 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'
'Fabrikan'
]
output accessorResult string = arrayVar[1]
Output dari contoh:
Nama | Jenis | Nilai |
---|---|---|
accessorResult | string | 'Contoso' |
Contoh berikut mendapatkan properti pada objek.
var environmentSettings = {
dev: {
name: 'Development'
}
prod: {
name: 'Production'
}
}
output accessorResult string = environmentSettings['dev'].name
Output dari contoh:
Nama | Jenis | Nilai |
---|---|---|
accessorResult | string | 'Development' |
Pengakses fungsi
resourceName.functionName()
Dua fungsi - getSecret dan list* - mendukung operator pengakses untuk memanggil fungsi. Kedua fungsi ini adalah satu-satunya fungsi yang mendukung operator pengakses.
Contoh
Contoh berikut mereferensikan brankas kunci yang ada, kemudian menggunakan getSecret
untuk mengirim rahasia ke modul.
resource kv 'Microsoft.KeyVault/vaults@2023-07-01' existing = {
name: kvName
scope: resourceGroup(subscriptionId, kvResourceGroup )
}
module sql './sql.bicep' = {
name: 'deploySQL'
params: {
sqlServerName: sqlServerName
adminLogin: adminLogin
adminPassword: kv.getSecret('vmAdminPassword')
}
}
Pengakses sumber daya bersarang
parentResource::nestedResource
Sumber daya bersarang adalah sumber daya yang dinyatakan dalam sumber daya lain. Gunakan pengakses sumber daya bersarang ::
untuk mengakses sumber daya bersarang dari luar sumber daya induk.
Dalam sumber daya induk, Anda mereferensikan sumber daya bersarang hanya dengan nama simbolik. Anda hanya perlu menggunakan pengakses sumber daya bersarang saat merujuk sumber daya bersarang dari luar sumber daya induk.
Contoh
Contoh berikut menunjukkan cara mereferensikan sumber daya bersarang 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
Pengakses properti
objectName.propertyName
Pengakses properti digunakan untuk mengakses properti suatu objek. Pengakses properti dapat digunakan dengan objek apa pun, termasuk parameter dan variabel yang merupakan objek. Anda mendapatkan kesalahan saat menggunakan akses properti pada pernyataan yang bukan merupakan 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 | Jenis | Nilai |
---|---|---|
outputZ |
string | 'Hello' |
outputQ |
Integer | 42 |
Biasanya, Anda menggunakan pengakses properti dengan sumber daya yang digunakan dalam file Bicep. Contoh berikut membuat alamat IP publik dan menggunakan pengakses properti untuk mengembalikan nilai dari sumber daya yang disebarkan.
resource publicIp 'Microsoft.Network/publicIPAddresses@2023-11-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 berikutnya
- 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.