Megosztás a következőn keresztül:


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