Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De accessoroperators worden gebruikt voor toegang tot onderliggende resources, eigenschappen van objecten en elementen in een matrix. U kunt ook de eigenschapstoegangsfunctie gebruiken om bepaalde functies te gebruiken.
| Operateur | Naam |
|---|---|
[] |
Indextoegangsfunctie |
[^index] |
Omgekeerde indextoegangsfunctie |
. |
Functietoegangsfunctie |
:: |
Geneste resourcetoegangsor |
. |
Eigenschapstoegangsor |
Indextoegangsfunctie
array[integerIndex]
object['stringIndex']
Gebruik de indextoegangsfunctie om een element op te halen uit een matrix of een eigenschap van een object.
Geef voor een matrix de index op als een geheel getal. Het gehele getal komt overeen met de positie op basis van nul van het element dat moet worden opgehaald.
Geef voor een object de index op als een tekenreeks. De tekenreeks komt overeen met de naam van het object dat moet worden opgehaald.
In het volgende voorbeeld wordt een element in een matrix weergegeven.
var arrayVar = [
'Coho'
'Contoso'
'Fabrikam'
]
output accessorResult string = arrayVar[1]
Uitvoer uit het voorbeeld:
| Naam | Typologie | Waarde |
|---|---|---|
| accessorResult | touw | 'Contoso' |
In het volgende voorbeeld wordt een eigenschap voor een object opgehaald.
var environmentSettings = {
dev: {
name: 'Development'
}
prod: {
name: 'Production'
}
}
output accessorResult string = environmentSettings['dev'].name
Uitvoer uit het voorbeeld:
| Naam | Typologie | Waarde |
|---|---|---|
| accessorResult | touw | 'Ontwikkeling' |
Omgekeerde indextoegangsfunctie
Vanaf Bicep CLI versie 0.34.x kunt u met de operator reverse index accessor (^) een element uit een matrix ophalen door vanaf het einde te tellen. Deze op een gebaseerde index betekent dat ^1 het laatste item, ^2 het tweede tot het laatste item enzovoort wordt geretourneerd. De index moet een positief geheel getal groter dan nul zijn en kan worden opgegeven als een letterlijke waarde of een expressie die resulteert in een geheel getal.
array[^index]
Als de index de lengte van de matrix overschrijdt, treedt er een compilatiefout op voor statische indexen of treedt er een runtimefout op voor dynamische indexen.
Voor constante matrices wordt de operator geëvalueerd tijdens het compileren. Voor dynamische invoer, zoals parameters, vindt evaluatie plaats tijdens de implementatie.
Voorbeeld
var items = [
'apple'
'banana'
'orange'
'grape'
]
output secondToLast string = items[^2]
Uitvoer uit het voorbeeld:
| Naam | Typologie | Waarde |
|---|---|---|
| secondToLast | touw | 'oranje' |
Functietoegangsfunctie
resourceName.functionName()
Twee functies: getSecret en list* - ondersteunen de operator voor accessor voor het aanroepen van de functie. Deze twee functies zijn de enige functies die ondersteuning bieden voor de toegangsoperator.
Voorbeeld
Het volgende voorbeeld verwijst naar een bestaande sleutelkluis en gebruikt getSecret vervolgens om een geheim door te geven aan een module.
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')
}
}
Geneste resourcetoegangsor
parentResource::nestedResource
Een geneste resource is een resource die wordt gedeclareerd binnen een andere resource. Gebruik de geneste resourcetoegangsor :: om toegang te krijgen tot geneste resources van buiten de bovenliggende resource.
Binnen de bovenliggende resource verwijst u naar de geneste resource met alleen de symbolische naam. U hoeft alleen de geneste resourcetoegangsor te gebruiken wanneer u verwijst naar de geneste resource van buiten de bovenliggende resource.
Voorbeeld
In het volgende voorbeeld ziet u hoe u naar een geneste resource verwijst vanuit de bovenliggende resource en van buiten de bovenliggende resource.
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
Eigendomsaccessor
objectName.propertyName
Eigenschapstoegangsors gebruiken om toegang te krijgen tot eigenschappen van een object. Eigenschapstoegangsors kunnen worden gebruikt met elk object, inclusief parameters en variabelen die objecten zijn. Er treedt een fout op wanneer u de toegang tot eigenschappen gebruikt voor een expressie die geen object is.
Voorbeeld
In het volgende voorbeeld ziet u een objectvariabele en hoe u toegang krijgt tot de eigenschappen.
var x = {
y: {
z: 'Hello'
a: true
}
q: 42
}
output outputZ string = x.y.z
output outputQ int = x.q
Uitvoer uit het voorbeeld:
| Naam | Typologie | Waarde |
|---|---|---|
outputZ |
touw | 'Hallo' |
outputQ |
geheel getal | 42 |
Normaal gesproken gebruikt u de eigenschapstoegangsor met een resource die is geïmplementeerd in het Bicep-bestand. In het volgende voorbeeld wordt een openbaar IP-adres gemaakt en worden eigenschapstoegangsors gebruikt om een waarde van de geïmplementeerde resource te retourneren.
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
Volgende stappen
- Als u de voorbeelden wilt uitvoeren, gebruikt u Azure CLI of Azure PowerShell om een Bicep-bestand te implementeren.
- Zie quickstart: Bicep-bestanden maken met Visual Studio Code om een Bicep-bestand te maken.
- Zie Elke functie voor Bicep voor Bicep-type voor informatie over het oplossen van bicep-fouten.