Bicep-toegangsoperators
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.
Operator | Naam |
---|---|
[] |
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'
'Fabrikan'
]
output accessorResult string = arrayVar[1]
Uitvoer uit het voorbeeld:
Name | Type | Weergegeven als |
---|---|---|
accessorResult | tekenreeks | '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:
Name | Type | Weergegeven als |
---|---|---|
accessorResult | tekenreeks | 'Ontwikkeling' |
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.
Opmerking
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@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')
}
}
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.
Opmerking
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
Eigenschapstoegangsor
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.
Opmerking
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:
Name | Type | Weergegeven als |
---|---|---|
outputZ |
tekenreeks | '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@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
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.