Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les opérateurs d’accesseur sont utilisés pour accéder aux ressources enfants, aux propriétés sur les objets et aux éléments d’un tableau. Vous pouvez également utiliser l’accesseur de propriété pour utiliser certaines fonctions.
| Opérateur | Nom |
|---|---|
[] |
Accesseur d’index |
[^index] |
Accesseur d’index inverse |
. |
Accesseur de fonction |
:: |
Accesseur de ressource imbriqué |
. |
Accesseur de propriété |
Accesseur d’index
array[integerIndex]
object['stringIndex']
Utilisez l’accesseur d’index pour obtenir un élément à partir d’un tableau ou d’une propriété à partir d’un objet.
Pour un tableau, fournissez l’index sous forme d’entier. L’entier correspond à la position de base zéro de l’élément à récupérer.
Pour un objet, fournissez l’index sous forme de chaîne. La chaîne correspond au nom de l’objet à récupérer.
L’exemple suivant obtient un élément dans un tableau.
var arrayVar = [
'Coho'
'Contoso'
'Fabrikam'
]
output accessorResult string = arrayVar[1]
Résultat de l’exemple :
| Nom | Catégorie | Valeur |
|---|---|---|
| accessorResult | ficelle | 'Contoso' |
L’exemple suivant obtient une propriété sur un objet.
var environmentSettings = {
dev: {
name: 'Development'
}
prod: {
name: 'Production'
}
}
output accessorResult string = environmentSettings['dev'].name
Résultat de l’exemple :
| Nom | Catégorie | Valeur |
|---|---|---|
| accessorResult | ficelle | 'Développement' |
Accesseur d’index inverse
À compter de Bicep CLI version 0.34.x, l’opérateur d’accesseur d’index inverse (^) vous permet de récupérer un élément à partir d’un tableau en comptant à partir de la fin. Cet index unidirecteur signifie qu’il ^1 retourne le dernier élément, ^2 le deuxième au dernier, et ainsi de suite. L’index doit être un entier positif supérieur à zéro et peut être spécifié en tant que littéral ou expression qui prend la valeur d’un entier.
array[^index]
Si l’index dépasse la longueur du tableau, une erreur de compilation se produit pour les index statiques ou une erreur d’exécution se produit pour les index dynamiques.
Pour les tableaux constants, l’opérateur est évalué au moment de la compilation. Pour les entrées dynamiques, telles que les paramètres, l’évaluation se produit au moment du déploiement.
Exemple :
var items = [
'apple'
'banana'
'orange'
'grape'
]
output secondToLast string = items[^2]
Résultat de l’exemple :
| Nom | Catégorie | Valeur |
|---|---|---|
| secondToLast | ficelle | 'orange' |
Accesseur de fonction
resourceName.functionName()
Deux fonctions - getSecret et list* - prennent en charge l’opérateur d’accesseur pour appeler la fonction. Ces deux fonctions sont les seules fonctions qui prennent en charge l’opérateur d’accesseur.
Exemple :
L’exemple suivant référence un coffre de clés existant, puis utilise getSecret pour passer un secret à un 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')
}
}
Accesseur de ressource imbriqué
parentResource::nestedResource
Une ressource imbriquée est une ressource déclarée dans une autre ressource. Utilisez l’accesseur :: de ressource imbriqué pour accéder à ces ressources imbriquées en dehors de la ressource parente.
Dans la ressource parente, vous référencez la ressource imbriquée avec simplement le nom symbolique. Vous devez uniquement utiliser l’accesseur de ressource imbriqué lors du référencement de la ressource imbriquée à partir de l’extérieur de la ressource parente.
Exemple :
L’exemple suivant montre comment référencer une ressource imbriquée à partir de la ressource parente et en dehors de la ressource parente.
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
Accesseur de propriété
objectName.propertyName
Utilisez des accesseurs de propriétés pour accéder aux propriétés d’un objet. Les accesseurs de propriété peuvent être utilisés avec n’importe quel objet, y compris les paramètres et les variables qui sont des objets. Vous obtenez une erreur lorsque vous utilisez l’accès à la propriété sur une expression qui n’est pas un objet.
Exemple :
L’exemple suivant montre une variable d’objet et comment accéder aux propriétés.
var x = {
y: {
z: 'Hello'
a: true
}
q: 42
}
output outputZ string = x.y.z
output outputQ int = x.q
Résultat de l’exemple :
| Nom | Catégorie | Valeur |
|---|---|---|
outputZ |
ficelle | 'Hello' |
outputQ |
entier | 42 |
En règle générale, vous utilisez l’accesseur de propriété avec une ressource déployée dans le fichier Bicep. L’exemple suivant crée une adresse IP publique et utilise des accesseurs de propriétés pour retourner une valeur à partir de la ressource déployée.
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
Étapes suivantes
- Pour exécuter les exemples, utilisez Azure CLI ou Azure PowerShell afin de déployer un fichier Bicep.
- Pour créer un fichier Bicep, consultez Démarrage rapide : Créer des fichiers Bicep avec Visual Studio Code.
- Pour plus d’informations sur la résolution des erreurs de type Bicep, consultez Fonction any pour Bicep.