Bicep kiegészítő operátorok
A kiegészítő operátorok a gyermekerőforrásokhoz, az objektumok tulajdonságaihoz és a tömb elemeihez való hozzáférésre szolgálnak. A tulajdonság tartozékával bizonyos függvényeket is használhat.
Operátor | Név |
---|---|
[] |
Index tartozék |
. |
Függvény tartozéka |
:: |
Beágyazott erőforrás-tartozék |
. |
Tulajdonság-tartozék |
Index tartozék
array[integerIndex]
object['stringIndex']
Az index tartozékával tömbből vagy objektumból származó tulajdonságot kérhet le.
Tömb esetén adja meg az indexet egész számként. Az egész szám megegyezik a lekérni kívánt elem nullaalapú pozíciójával.
Objektum esetén adja meg az indexet sztringként. A sztring megegyezik a lekérni kívánt objektum nevével.
Az alábbi példa egy tömb egyik elemét kapja meg.
var arrayVar = [
'Coho'
'Contoso'
'Fabrikan'
]
output accessorResult string = arrayVar[1]
Kimenet a példából:
Név | Típus | Érték |
---|---|---|
accessorResult | húr | "Contoso" |
A következő példa egy objektum tulajdonságát kapja meg.
var environmentSettings = {
dev: {
name: 'Development'
}
prod: {
name: 'Production'
}
}
output accessorResult string = environmentSettings['dev'].name
Kimenet a példából:
Név | Típus | Érték |
---|---|---|
accessorResult | húr | "Fejlesztés" |
Függvény tartozéka
resourceName.functionName()
Két függvény – getSecret és list* – támogatja a kiegészítő operátort a függvény meghívásához. Ez a két függvény az egyetlen olyan függvény, amely támogatja a tartozék operátorát.
Példa
Az alábbi példa egy meglévő kulcstartóra hivatkozik, majd egy titkos kulcs átadására használ getSecret
egy modulnak.
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')
}
}
Beágyazott erőforrás-tartozék
parentResource::nestedResource
A beágyazott erőforrások olyan erőforrások, amelyek egy másik erőforráson belül deklarálva lesznek. A beágyazott erőforrás-tartozék ::
használatával a beágyazott erőforrásokat a szülőerőforráson kívülről érheti el.
A szülőerőforráson belül csak a szimbolikus névvel hivatkozhat a beágyazott erőforrásra. Csak akkor kell használnia a beágyazott erőforrás-tartozékot, ha a beágyazott erőforrásra a szülőerőforráson kívülről hivatkozik.
Példa
Az alábbi példa bemutatja, hogyan hivatkozhat beágyazott erőforrásra a szülőerőforráson belülről és a szülőerőforráson kívülről.
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
Tulajdonság-tartozék
objectName.propertyName
Tulajdonságkiegészítők használata egy objektum tulajdonságainak eléréséhez. A tulajdonságkiegészítők bármilyen objektummal használhatók, beleértve az objektumnak minősülő paramétereket és változókat is. Hibaüzenet jelenik meg, ha a tulajdonsághozzáférést nem objektumként szolgáló kifejezésen használja.
Példa
Az alábbi példa egy objektumváltozót és a tulajdonságok elérését mutatja be.
var x = {
y: {
z: 'Hello'
a: true
}
q: 42
}
output outputZ string = x.y.z
output outputQ int = x.q
Kimenet a példából:
Név | Típus | Érték |
---|---|---|
outputZ |
húr | "Hello" |
outputQ |
egész szám | 42 |
A tulajdonság-tartozékot általában a Bicep-fájlban üzembe helyezett erőforrással használja. Az alábbi példa létrehoz egy nyilvános IP-címet, és tulajdonság-tartozékokkal ad vissza egy értéket az üzembe helyezett erőforrásból.
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
Következő lépések
- A példák futtatásához használja az Azure CLI-t vagy az Azure PowerShellt egy Bicep-fájl üzembe helyezéséhez.
- Bicep-fájl létrehozásához tekintse meg a Rövid útmutatót: Bicep-fájlok létrehozása a Visual Studio Code-tal.
- A Bicep-típushibák megoldásáról további információt a Bicep Bármely függvénye című témakörben talál.