Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Accessoroperatoren werden verwendet, um auf untergeordnete Ressourcen, Eigenschaften für Objekte und Elemente in einem Array zuzugreifen. Sie können auch den Eigenschaftenaccessor verwenden, um einige Funktionen zu verwenden.
| Bediener | Name |
|---|---|
[] |
Indexaccessor |
[^index] |
Umgekehrter Index-Accessor |
. |
Funktionsaccessor |
:: |
Geschachtelter Ressourcenaccessor |
. |
Eigenschaftenaccessor |
Indexaccessor
array[integerIndex]
object['stringIndex']
Verwenden Sie den Indexaccessor, um entweder ein Element aus einem Array oder eine Eigenschaft aus einem Objekt abzurufen.
Geben Sie für ein Array den Index als ganze Zahl an. Die ganze Zahl entspricht der nullbasierten Position des abzurufenden Elements.
Geben Sie für ein Objekt den Index als Zeichenfolge an. Die Zeichenfolge entspricht dem Namen des abzurufenden Objekts.
Im folgenden Beispiel wird ein Element in einem Array abgerufen.
var arrayVar = [
'Coho'
'Contoso'
'Fabrikam'
]
output accessorResult string = arrayVar[1]
Ausgabe des Beispiels:
| Name | Typ | Wert |
|---|---|---|
| accessorResult | Schnur | "Contoso" |
Das nächste Beispiel ruft eine Eigenschaft für ein Objekt ab.
var environmentSettings = {
dev: {
name: 'Development'
}
prod: {
name: 'Production'
}
}
output accessorResult string = environmentSettings['dev'].name
Ausgabe des Beispiels:
| Name | Typ | Wert |
|---|---|---|
| accessorResult | Schnur | "Entwicklung" |
Umgekehrter Index-Accessor
Ab Bicep CLI, Version 0.34.x, können Sie mit dem Reverseindex-Accessoroperator (^) ein Element aus einem Array abrufen, indem Sie vom Ende zählen. Dieser 1-basierte Index bedeutet ^1 , dass das letzte Element, ^2 das letzte Element usw. zurückgegeben wird. Der Index muss eine positive ganze Zahl größer als Null sein und kann als Literal oder als Ausdruck angegeben werden, der als ganze Zahl ausgewertet wird.
array[^index]
Wenn der Index die Länge des Arrays überschreitet, tritt bei statischen Indizes ein Kompilierungsfehler auf, oder für dynamische Indizes tritt ein Laufzeitfehler auf.
Bei Konstantenarrays wird der Operator zur Kompilierungszeit ausgewertet. Bei dynamischen Eingaben, z. B. Parametern, erfolgt die Auswertung zur Bereitstellungszeit.
Beispiel
var items = [
'apple'
'banana'
'orange'
'grape'
]
output secondToLast string = items[^2]
Ausgabe des Beispiels:
| Name | Typ | Wert |
|---|---|---|
| secondToLast | Schnur | "Orange" |
Funktionsaccessor
resourceName.functionName()
Zwei Funktionen – getSecret und list* – unterstützen den Accessoroperator zum Aufrufen der Funktion. Diese beiden Funktionen sind die einzigen Funktionen, die den Accessoroperator unterstützen.
Beispiel
Im folgenden Beispiel wird auf einen vorhandenen Schlüsseltresor verwiesen. Anschließend wird getSecret ein Geheimschlüssel an ein Modul übergeben.
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')
}
}
Geschachtelter Ressourcenaccessor
parentResource::nestedResource
Eine geschachtelte Ressource ist eine Ressource, die innerhalb einer anderen Ressource deklariert wird. Verwenden Sie den geschachtelten Ressourcenaccessor :: , um von außerhalb der übergeordneten Ressource auf diese geschachtelten Ressourcen zuzugreifen.
Innerhalb der übergeordneten Ressource verweisen Sie auf die geschachtelte Ressource mit nur dem symbolischen Namen. Sie müssen nur den geschachtelten Ressourcenaccessor verwenden, wenn Sie auf die geschachtelte Ressource von außerhalb der übergeordneten Ressource verweisen.
Beispiel
Das folgende Beispiel zeigt, wie Sie von der übergeordneten Ressource und von außerhalb der übergeordneten Ressource auf eine geschachtelte Ressource verweisen.
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
Eigenschaftenaccessor
objectName.propertyName
Verwenden Sie Eigenschaftsaccessoren, um auf Eigenschaften eines Objekts zuzugreifen. Eigenschaftenaccessoren können mit jedem Objekt verwendet werden, einschließlich Parametern und Variablen, die Objekte sind. Sie erhalten einen Fehler, wenn Sie den Eigenschaftenzugriff für einen Ausdruck verwenden, der kein Objekt ist.
Beispiel
Das folgende Beispiel zeigt eine Objektvariable und den Zugriff auf die Eigenschaften.
var x = {
y: {
z: 'Hello'
a: true
}
q: 42
}
output outputZ string = x.y.z
output outputQ int = x.q
Ausgabe des Beispiels:
| Name | Typ | Wert |
|---|---|---|
outputZ |
Schnur | "Hallo" |
outputQ |
Integer | 42 |
In der Regel verwenden Sie den Eigenschaftenaccessor mit einer Ressource, die in der Bicep-Datei bereitgestellt wird. Im folgenden Beispiel wird eine öffentliche IP-Adresse erstellt und Eigenschaftenaccessoren verwendet, um einen Wert aus der bereitgestellten Ressource zurückzugeben.
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
Nächste Schritte
- Verwenden Sie zum Ausführen der Beispiele die Azure CLI oder Azure PowerShell, um eine Bicep-Datei bereitzustellen.
- Informationen zum Erstellen einer Bicep-Datei finden Sie unter Schnellstart: Erstellen von Bicep-Dateien mit Visual Studio Code.
- Informationen zum Beheben von Bicep-Typfehlern finden Sie unter any-Funktion für Bicep.