Operatori di accesso Bicep
Gli operatori di accesso vengono usati per accedere alle risorse figlio, alle proprietà sugli oggetti e agli elementi in una matrice. È anche possibile usare la funzione di accesso alle proprietà per usare alcune funzioni.
Operatore | Nome |
---|---|
[] |
Funzione di accesso Index |
. |
Funzione di accesso alle funzioni |
:: |
Funzione di accesso alle risorse nidificata |
. |
Funzioni di accesso alle proprietà |
Funzione di accesso Index
array[integerIndex]
object['stringIndex']
Utilizzare la funzione di accesso index per ottenere un elemento da una matrice o da una proprietà da un oggetto.
Per una matrice, specificare l'indice come numero intero. L'intero corrisponde alla posizione in base zero dell'elemento da recuperare.
Per un oggetto, specificare l'indice come stringa. La stringa corrisponde al nome dell'oggetto da recuperare.
Nell'esempio seguente viene restituito un elemento in una matrice.
var arrayVar = [
'Coho'
'Contoso'
'Fabrikan'
]
output accessorResult string = arrayVar[1]
Output dell'esempio:
Nome | Type | Valore |
---|---|---|
accessorResult | string | 'Contoso' |
Nell'esempio seguente viene recuperata una proprietà su un oggetto .
var environmentSettings = {
dev: {
name: 'Development'
}
prod: {
name: 'Production'
}
}
output accessorResult string = environmentSettings['dev'].name
Output dell'esempio:
Nome | Type | Valore |
---|---|---|
accessorResult | string | ‘Sviluppo’ |
Funzione di accesso alle funzioni
resourceName.functionName()
Due funzioni, getSecret e list*, supportano l'operatore di accesso per chiamare la funzione. Queste due funzioni sono le uniche funzioni che supportano l'operatore di accesso.
Esempio
Nell'esempio seguente viene fatto riferimento a un insieme di credenziali delle chiavi esistente, quindi viene usato getSecret
per passare un segreto a un modulo.
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')
}
}
Funzione di accesso alle risorse nidificata
parentResource::nestedResource
Una risorsa nidificata è una risorsa dichiarata all'interno di un'altra risorsa. Usare la funzione di accesso alle risorse nidificata ::
per accedere alle risorse annidate dall'esterno della risorsa padre.
All'interno della risorsa padre si fa riferimento alla risorsa annidata con solo il nome simbolico. È sufficiente usare la funzione di accesso alle risorse nidificata quando si fa riferimento alla risorsa nidificata dall'esterno della risorsa padre.
Esempio
Nell'esempio seguente viene illustrato come fare riferimento a una risorsa annidata dall'interno della risorsa padre e dall'esterno della risorsa padre.
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
Funzione di accesso alla proprietà
objectName.propertyName
Utilizzare le funzioni di accesso alle proprietà per accedere alle proprietà di un oggetto. Le funzioni di accesso alle proprietà possono essere usate con qualsiasi oggetto, inclusi parametri e variabili che sono oggetti. Viene visualizzato un errore quando si usa l'accesso alle proprietà in un'espressione che non è un oggetto.
Esempio
Nell'esempio seguente viene illustrata una variabile oggetto e come accedere alle proprietà.
var x = {
y: {
z: 'Hello'
a: true
}
q: 42
}
output outputZ string = x.y.z
output outputQ int = x.q
Output dell'esempio:
Nome | Type | Valore |
---|---|---|
outputZ |
string | ‘Salve’ |
outputQ |
integer | 42 |
In genere, si usa la funzione di accesso alle proprietà con una risorsa distribuita nel file Bicep. L'esempio seguente crea un indirizzo IP pubblico e usa le funzioni di accesso alle proprietà per restituire un valore dalla risorsa distribuita.
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
Passaggi successivi
- Per eseguire gli esempi, usare l'interfaccia della riga di comando di Azure o Azure PowerShell per distribuire un file Bicep.
- Per creare un file Bicep, vedere Avvio rapido: Creare file Bicep con Visual Studio Code.
- Per informazioni su come risolvere gli errori di tipo Bicep, vedere Qualsiasi funzione per Bicep.