Erőforrásfüggvények a Bicep-hez

Ez a cikk az erőforrásértékek lekérésére szolgáló Bicep-függvényeket ismerteti.

Az aktuális üzemelő példány értékeinek lekéréséhez tekintse meg az Üzembe helyezés értékfüggvényeit.

extensionResourceId

extensionResourceId(resourceId, resourceType, resourceName1, [resourceName2], ...)

Egy bővítményerőforrás erőforrás-azonosítóját adja vissza. A bővítményerőforrás olyan erőforrástípus, amelyet egy másik erőforrásra alkalmazva bővíti képességeit.

Névtér: az.

A extensionResourceId függvény bicep-fájlokban érhető el, de általában nincs rá szüksége. Ehelyett használja az erőforrás szimbolikus nevét, és érje el a tulajdonságot id .

A függvény által visszaadott erőforrás-azonosító alapformátuma:

{scope}/providers/{extensionResourceProviderNamespace}/{extensionResourceType}/{extensionResourceName}

A hatókörszegmens a kibővítendő erőforrástól függően változik.

Amikor a bővítményerőforrást egy erőforrásra alkalmazza, a rendszer az erőforrás-azonosítót a következő formátumban adja vissza:

/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{baseResourceProviderNamespace}/{baseResourceType}/{baseResourceName}/providers/{extensionResourceProviderNamespace}/{extensionResourceType}/{extensionResourceName}

Amikor a bővítményerőforrást egy erőforráscsoportra alkalmazza, a formátum a következő:

/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{extensionResourceProviderNamespace}/{extensionResourceType}/{extensionResourceName}

Ha a bővítményerőforrást egy előfizetésre alkalmazza, a formátum a következő:

/subscriptions/{subscriptionId}/providers/{extensionResourceProviderNamespace}/{extensionResourceType}/{extensionResourceName}

Amikor a bővítményerőforrást egy felügyeleti csoportra alkalmazza, a formátum a következő:

/providers/Microsoft.Management/managementGroups/{managementGroupName}/providers/{extensionResourceProviderNamespace}/{extensionResourceType}/{extensionResourceName}

A felügyeleti csoportokban üzembe helyezett egyéni szabályzatdefiníciók bővítményerőforrásként lesznek implementálva. Szabályzat létrehozásához és hozzárendeléséhez helyezze üzembe a következő Bicep-fájlt egy felügyeleti csoportban.

targetScope = 'managementGroup'

@description('An array of the allowed locations, all other locations will be denied by the created policy.')
param allowedLocations array = [
  'australiaeast'
  'australiasoutheast'
  'australiacentral'
]

resource policyDefinition 'Microsoft.Authorization/policyDefinitions@2021-06-01' = {
  name: 'locationRestriction'
  properties: {
    policyType: 'Custom'
    mode: 'All'
    parameters: {}
    policyRule: {
      if: {
        not: {
          field: 'location'
          in: allowedLocations
        }
      }
      then: {
        effect: 'deny'
      }
    }
  }
}

resource policyAssignment 'Microsoft.Authorization/policyAssignments@2022-06-01' = {
  name: 'locationAssignment'
  properties: {
    policyDefinitionId: policyDefinition.id
  }
}

A beépített szabályzatdefiníciók bérlőszintű erőforrások. Egy beépített szabályzatdefiníció üzembe helyezésére példa: tenantResourceId.

getSecret

keyVaultName.getSecret(secretName)

Egy Titkos kulcsot ad vissza egy Azure Key Vaultból. Ezzel a függvénnyel titkos kódot adhat át egy Bicep-modul biztonságos sztringparaméterének.

Feljegyzés

az.getSecret(subscriptionId, resourceGroupName, keyVaultName, secretName, secretVersion) függvény a kulcstartó titkos kulcskódjainak lekérésére használható fájlokban .bicepparam . További információ: getSecret.

A függvényt csak a getSecretparams modul szakaszából használhatja. Csak erőforrással Microsoft.KeyVault/vaults használhatja.

module sql './sql.bicep' = {
  name: 'deploySQL'
  params: {
    adminPassword: keyVault.getSecret('vmAdminPassword')
  }
}

Hibaüzenet jelenik meg, ha ezt a függvényt a Bicep-fájl bármely más részében megkísérli használni. Akkor is hibaüzenet jelenik meg, ha sztringinterpolációval használja ezt a függvényt, még akkor is, ha a params szakaszban használják.

A függvény csak a dekoratőrrel rendelkező @secure() modulparaméterrel használható.

A kulcstartónak a következőre kell enabledForTemplateDeployment állítania: true. A Bicep-fájlt üzembe helyező felhasználónak hozzá kell férnie a titkos kódhoz. További információ: Az Azure Key Vault használata biztonságos paraméterértékek átadásához a Bicep üzembe helyezése során.

Nincs szükség névtér-minősítőre , mert a függvény erőforrástípussal van használva.

Paraméterek

Paraméter Kötelező Típus Leírás
secretName Igen húr A kulcstartóban tárolt titkos kód neve.

Visszaadott érték

A titkos név titkos értéke.

Példa

A következő Bicep-fájl használható modulként. A dekoratőrrel @secure() definiált adminPassword paraméterrel rendelkezik.

param sqlServerName string
param adminLogin string

@secure()
param adminPassword string

resource sqlServer 'Microsoft.Sql/servers@2022-08-01-preview' = {
  ...
}

Az alábbi Bicep-fájl az előző Bicep-fájlt használja modulként. A Bicep-fájl hivatkozik egy meglévő kulcstartóra, és meghívja a függvényt a getSecret kulcstartó titkos kulcsának lekérésére, majd paraméterként átadja az értéket a modulnak.

param sqlServerName string
param adminLogin string

param subscriptionId string
param kvResourceGroup string
param kvName string

resource keyVault 'Microsoft.KeyVault/vaults@2023-02-01' existing = {
  name: kvName
  scope: resourceGroup(subscriptionId, kvResourceGroup )
}

module sql './sql.bicep' = {
  name: 'deploySQL'
  params: {
    sqlServerName: sqlServerName
    adminLogin: adminLogin
    adminPassword: keyVault.getSecret('vmAdminPassword')
  }
}

Lista*

resourceName.list([apiVersion], [functionValues])

Bármely erőforrástípushoz meghívhat listafüggvényt egy olyan művelettel, amely a következővel listkezdődik: . Egyes gyakori használati módok a listkövetkezők: , listKeyslistKeyValueés listSecrets.

A függvény szintaxisa a listaművelet nevétől függően változik. A visszaadott értékek műveletenként is változnak. A Bicep jelenleg nem támogatja a függvények befejezését és érvényesítését list* .

A Bicep CLI 0.4.X-es vagy újabb verziójával a listafüggvényt a tartozék operátorával hívhatja meg. Például: storageAccount.listKeys().

Nincs szükség névtér-minősítőre , mert a függvény erőforrástípussal van használva.

Paraméterek

Paraméter Kötelező Típus Leírás
apiVersion Nem húr Ha nem adja meg ezt a paramétert, a rendszer az erőforrás API-verzióját használja. Csak akkor adjon meg egyéni API-verziót, ha a függvényt egy adott verzióval kell futtatni. Használja az yyyy-mm-dd formátumot.
functionValues Nem object Egy objektum, amely a függvény értékeit tartalmazza. Ezt az objektumot csak olyan függvényekhez adja meg, amelyek támogatják a paraméterértékekkel rendelkező objektumok fogadását, például listAccountSas egy tárfiókban. A függvényértékek átadására példa jelenik meg ebben a cikkben.

Érvényes felhasználások

A list függvények egy erőforrásdefiníció tulajdonságaiban használhatók. Ne használjon olyan függvényt list , amely bizalmas információkat tesz elérhetővé egy Bicep-fájl kimeneti szakaszában. A kimeneti értékek az üzembe helyezési előzményekben vannak tárolva, és egy rosszindulatú felhasználó lekérheti őket.

Ha iteratív hurokkal használja, használhatja a list függvényeketinput, mert a kifejezés hozzá van rendelve az erőforrástulajdonsághoz. Nem használhatja őket count , mert a függvény feloldása előtt meg kell határozni a list darabszámot.

Ha feltételesen üzembe helyezett erőforrásban használ list függvényt, a rendszer akkor is kiértékeli a függvényt, ha az erőforrás nincs üzembe helyezve. Hibaüzenet jelenik meg, ha a list függvény nem létező erőforrásra hivatkozik. A ?: operátor feltételes kifejezéssel győződjön meg arról, hogy a függvény csak az erőforrás üzembe helyezésekor lesz kiértékelve.

Visszaadott érték

A visszaadott objektum a használt listafüggvénytől függően változik. Egy tárfiók esetében például a listKeys következő formátumot adja vissza:

{
  "keys": [
    {
      "keyName": "key1",
      "permissions": "Full",
      "value": "{value}"
    },
    {
      "keyName": "key2",
      "permissions": "Full",
      "value": "{value}"
    }
  ]
}

Más list függvények eltérő visszatérési formátumokat használnak. Egy függvény formátumának megtekintéséhez vegye fel a kimenetek szakaszba, ahogyan az a Bicep-példafájlban is látható.

Példa lista

Az alábbi példa üzembe helyez egy tárfiókot, majd meghívja listKeys a tárfiókot. A kulcs az üzembehelyezési szkriptek értékének beállításakor használatos.

resource storageAccount 'Microsoft.Storage/storageAccounts@2022-09-01' = {
  name: 'dscript${uniqueString(resourceGroup().id)}'
  location: location
  kind: 'StorageV2'
  sku: {
    name: 'Standard_LRS'
  }
}

resource dScript 'Microsoft.Resources/deploymentScripts@2020-10-01' = {
  name: 'scriptWithStorage'
  location: location
  ...
  properties: {
    azCliVersion: '2.0.80'
    storageAccountSettings: {
      storageAccountName: storageAccount.name
      storageAccountKey: storageAccount.listKeys().keys[0].value
    }
    ...
  }
}

A következő példa egy paramétert list használó függvényt mutat be. Ebben az esetben a függvény a következő listAccountSas: . Adjon át egy objektumot a lejárati időre. A lejárati időnek a jövőben kell lennie.

param accountSasProperties object {
  default: {
    signedServices: 'b'
    signedPermission: 'r'
    signedExpiry: '2020-08-20T11:00:00Z'
    signedResourceTypes: 's'
  }
}
...
sasToken: storageAccount.listAccountSas('2021-04-01', accountSasProperties).accountSasToken

Megvalósítások

A lehetséges felhasználási módok list* az alábbi táblázatban láthatók.

Erőforrás típusa Függvénynév
Microsoft.Addons/supportProviders listsupportplaninfo
Microsoft.AnalysisServices/servers listGatewayStatus
Microsoft.ApiManagement/service/authorizationServers listSecrets
Microsoft.ApiManagement/service/gateways listKeys
Microsoft.ApiManagement/service/identityProviders listSecrets
Microsoft.ApiManagement/service/namedValues listValue
Microsoft.ApiManagement/service/openid Csatlakozás Providers listSecrets
Microsoft.ApiManagement/service/subscriptions listSecrets
Microsoft.AppConfiguration/configurationStores ListKeys
Microsoft.AppPlatform/Spring listTestKeys
Microsoft.Automation/automationAccounts listKeys
Microsoft.Batch/batchAccounts listkeys
Microsoft.BatchAI/workspaces/experiments/jobs listoutputfiles
Microsoft.BotService/botServices/channels listChannelWithKeys
Microsoft.Cache/redis listKeys
Microsoft.CognitiveServices/accounts listKeys
Microsoft.ContainerRegistry/regisztrációs adatbázisok lista hitelesítő adatai
Microsoft.ContainerRegistry/regisztrációs adatbázisok listUsages
Microsoft.ContainerRegistry/registries/agentpools listQueueStatus
Microsoft.ContainerRegistry/registries/buildTasks listSourceRepositoryProperties
Microsoft.ContainerRegistry/registries/buildTasks/steps listBuildArguments
Microsoft.ContainerRegistry/registries/taskruns listDetails
Microsoft.ContainerRegistry/registries/webhooks listEvents
Microsoft.ContainerRegistry/registries/runs listLogSasUrl
Microsoft.ContainerRegistry/registries/tasks listDetails
Microsoft.ContainerService/managedClusters listCluster Rendszergazda Credential
Microsoft.ContainerService/managedClusters listClusterMonitoringUserCredential
Microsoft.ContainerService/managedClusters listClusterUserCredential
Microsoft.ContainerService/managedClusters/accessProfiles listCredential
Microsoft.DataBox/jobs lista hitelesítő adatai
Microsoft.DataFactory/datafactories/gateways listauthkeys
Microsoft.DataFactory/factoryies/integrationruntimes listauthkeys
Microsoft.DataLakeAnalytics/accounts/storageAccounts/Containers listSasTokens
Microsoft.DataShare/accounts/shares listSynchronizations
Microsoft.DataShare/accounts/shareSubscriptions listSourceShareSynchronization Gépház
Microsoft.DataShare/accounts/shareSubscriptions listSynchronizationDetails
Microsoft.DataShare/accounts/shareSubscriptions listSynchronizations
Microsoft.Devices/iotHubs listkeys
Microsoft.Devices/iotHubs/iotHubKeys listkeys
Microsoft.Devices/provisioningServices/keys listkeys
Microsoft.Devices/provisioningServices listkeys
Microsoft.DevTestLab/labs ListVhds
Microsoft.DevTestLab/labs/schedules ListApplicable
Microsoft.DevTestLab/labs/users/serviceFabrics ListApplicableSchedules
Microsoft.DevTestLab/labs/virtualMachines ListApplicableSchedules
Microsoft.DocumentDB/databaseAccounts listKeys
Microsoft.DocumentDB/databaseAccounts/notebookWorkspaces listázás Csatlakozás ionInfo
Microsoft.DomainRegistration listDomain Javaslatok
Microsoft.DomainRegistration/topLevelDomains listAgreements
Microsoft.EventGrid/domains listKeys
Microsoft.EventGrid/topics listKeys
Microsoft.EventHub/namespaces/authorizationRules listkeys
Microsoft.EventHub/namespaces/disasterRecoveryConfigs/authorizationRules listkeys
Microsoft.EventHub/namespaces/eventhubs/authorizationRules listkeys
Microsoft.ImportExport/jobs listBitLockerKeys
Microsoft.Kusto/Fürtök/Adatbázisok ListPrincipals
Microsoft.LabServices/labs/users list
Microsoft.LabServices/labs/virtualMachines list
Microsoft.Logic/integrationAccounts/agreements listContentCallbackUrl
Microsoft.Logic/integrationAccounts/szerelvények listContentCallbackUrl
Microsoft.Logic/integrationAccounts listCallbackUrl
Microsoft.Logic/integrationAccounts listKeyVaultKeys
Microsoft.Logic/integrationAccounts/maps listContentCallbackUrl
Microsoft.Logic/integrationAccounts/partners listContentCallbackUrl
Microsoft.Logic/integrationAccounts/schemas listContentCallbackUrl
Microsoft.Logic/workflows listCallbackUrl
Microsoft.Logic/workflows listSwagger
Microsoft.Logic/workflows/runs/actions listExpressionTraces
Microsoft.Logic/workflows/runs/actions/repetitions listExpressionTraces
Microsoft.Logic/workflows/triggerek listCallbackUrl
Microsoft.Logic/workflows/versions/triggers listCallbackUrl
Microsoft.Machine Tanulás/webServices listkeys
Microsoft.Machine Tanulás/Workspaces listworkspacekeys
Microsoft.Machine Tanulás Szolgáltatások/munkaterületek/számítások listKeys
Microsoft.Machine Tanulás Szolgáltatások/munkaterületek/számítások listNodes
Microsoft.Machine Tanulás Szolgáltatások/munkaterületek listKeys
Microsoft. Térképek/fiókok listKeys
Microsoft.Media/mediaservices/assets listContainerSas
Microsoft.Media/mediaservices/assets listStreamingLocators
Microsoft.Media/mediaservices/streamingLocators listContentKeys
Microsoft.Media/mediaservices/streamingLocators listPaths
Microsoft.Network/applicationSecurityGroups listIpConfigurations
Microsoft.NotificationHubs/Namespaces/authorizationRules listkeys
Microsoft.NotificationHubs/Namespaces/NotificationHubs/authorizationRules listkeys
Microsoft.Operational Elemzések/workspaces list
Microsoft.Operational Elemzések/workspaces listKeys
Microsoft.Policy Elemzések/szervizelések listDeployments
Microsoft.RedHatOpenShift/openShiftClusters lista hitelesítő adatai
Microsoft.Relay/namespaces/disasterRecoveryConfigs/authorizationRules listkeys
Microsoft.Search/searchServices listázás Rendszergazda Kulcsok
Microsoft.Search/searchServices listQueryKeys
Microsoft.SignalRService/SignalR listkeys
Microsoft.Storage/storageAccounts listAccountSas
Microsoft.Storage/storageAccounts listkeys
Microsoft.Storage/storageAccounts listServiceSas
Microsoft.StorSimple/managers/devices listFailoverSets
Microsoft.StorSimple/managers/devices listFailoverTargets
Microsoft.StorSimple/vezetők listActivationKey
Microsoft.StorSimple/vezetők listPublicEncryptionKey
Microsoft.Synapse/workspaces/integrationRuntimes listAuthKeys
Microsoft.Web/connectionGateways ListStatus
microsoft.web/connections listconsentlinks
Microsoft.Web/customApis listWsdlInterfaces
microsoft.web/locations listwsdlinterfaces
microsoft.web/apimanagementaccounts/apis/connections listconnectionkeys
microsoft.web/apimanagementaccounts/apis/connections listsecrets
microsoft.web/sites/backups list
Microsoft.Web/sites/config list
microsoft.web/sites/functions listkeys
microsoft.web/sites/functions listsecrets
microsoft.web/sites/hybridconnectionnamespaces/relays listkeys
microsoft.web/sites listsyncfunctiontriggerstatus
microsoft.web/sites/slots/functions listsecrets
microsoft.web/sites/slots/backups list
Microsoft.Web/sites/slots/config list
microsoft.web/sites/slots/functions listsecrets

Annak megállapításához, hogy mely erőforrástípusok rendelkeznek listaművelettel, az alábbi lehetőségek állnak rendelkezésre:

  • Tekintse meg egy erőforrás-szolgáltató REST API-műveleteit , és keresse meg a listaműveleteket. A tárfiókok például rendelkeznek a listKeys művelettel.

  • Használja a Get-AzProviderOperation PowerShell-parancsmagot. Az alábbi példa lekéri a tárfiókok összes listaműveletét:

    Get-AzProviderOperation -OperationSearchString "Microsoft.Storage/*" | where {$_.Operation -like "*list*"} | FT Operation
    
  • A következő Azure CLI-paranccsal csak a listaműveleteket szűrheti:

    az provider operation show --namespace Microsoft.Storage --query "resourceTypes[?name=='storageAccounts'].operations[].name | [?contains(@, 'list')]"
    

pickZones

pickZones(providerNamespace, resourceType, location, [numberOfZones], [offset])

Meghatározza, hogy egy erőforrástípus támogatja-e egy régió zónáit. Ez a függvény csak a zonális erőforrásokat támogatja. A zónaredundáns szolgáltatások üres tömböt adnak vissza. További információt a rendelkezésre állási zónákat támogató Azure-szolgáltatásokban talál.

Névtér: az.

Paraméterek

Paraméter Kötelező Típus Leírás
providerNamespace Igen húr Az erőforrástípus erőforrás-szolgáltatói névtere, amely ellenőrzi a zónatámogatást.
resourceType Igen húr A zónatámogatás ellenőrzéséhez használt erőforrástípus.
hely Igen húr A zónatámogatást ellenőrizni kívánt régió.
numberOfZones Nem egész szám A visszaadandó logikai zónák száma. Az alapértelmezett érték 1. A számnak 1 és 3 közötti pozitív egész számnak kell lennie. Használja az 1-et egyzónás erőforrásokhoz. Többzónás erőforrások esetén az értéknek kisebbnek vagy egyenlőnek kell lennie a támogatott zónák számánál.
Eltolás Nem egész szám A kezdő logikai zóna eltolása. A függvény hibát ad vissza, ha az eltolás és a numberOfZones meghaladja a támogatott zónák számát.

Visszaadott érték

Egy tömb a támogatott zónákkal. Ha az eltolás alapértelmezett értékeit használja, és numberOfZonesa zónákat támogató erőforrástípus és régió a következő tömböt adja vissza:

[
    "1"
]

Ha a numberOfZones paraméter értéke 3, a következőt adja vissza:

[
    "1",
    "2",
    "3"
]

Ha az erőforrás típusa vagy régiója nem támogatja a zónákat, a függvény üres tömböt ad vissza.

[
]

Megjegyzések

Az Azure Rendelkezésre állási zónákhoz különböző kategóriák tartoznak – zonális és zónaredundáns. A pickZones függvény egy zónaerőforrás rendelkezésre állási zónájának visszaadására használható. Zónaredundáns szolgáltatások (ZRS) esetén a függvény egy üres tömböt ad vissza. A zonális erőforrások általában az zones erőforrásdefiníció legfelső szintjén rendelkeznek tulajdonságokkal. A rendelkezésre állási zónák támogatási kategóriájának meghatározásához tekintse meg a rendelkezésre állási zónákat támogató Azure-szolgáltatásokat.

Annak megállapításához, hogy egy adott Azure-régió vagy hely támogatja-e a rendelkezésre állási zónákat, hívja meg a pickZones függvényt egy zonális erőforrástípussal, például Microsoft.Network/publicIPAddresses. Ha a válasz nem üres, a régió támogatja a rendelkezésre állási zónákat.

pickZones példa

Az alábbi Bicep-fájl három eredményt jelenít meg a pickZones függvény használatához.

output supported array = pickZones('Microsoft.Compute', 'virtualMachines', 'westus2')
output notSupportedRegion array = pickZones('Microsoft.Compute', 'virtualMachines', 'westus')
output notSupportedType array = pickZones('Microsoft.Cdn', 'profiles', 'westus2')

Az előző példák kimenete három tömböt ad vissza.

Név Típus Érték
támogatott array [ "1" ]
notSupportedRegion array []
notSupportedType array []

A válasz pickZones segítségével meghatározhatja, hogy null értéket adjon-e a zónákhoz, vagy virtuális gépeket rendeljen különböző zónákhoz.

Szolgáltatók

A szolgáltatói függvény elavult a Bicepben. A továbbiakban nem javasoljuk a használatát. Ha ezt a függvényt használta az erőforrás-szolgáltató API-verziójának lekéréséhez, javasoljuk, hogy adjon meg egy adott API-verziót a Bicep-fájlban. Ha dinamikusan visszaadott API-verziót használ, az megszakíthatja a sablont, ha a tulajdonságok megváltoznak a verziók között.

A szolgáltatói művelet továbbra is elérhető a REST API-val. Egy Bicep-fájlon kívül is használható az erőforrás-szolgáltatóval kapcsolatos információk lekéréséhez.

Névtér: az.

Hivatkozás

reference(resourceName or resourceIdentifier, [apiVersion], ['Full'])

Egy erőforrás futtatókörnyezeti állapotát képviselő objektumot ad vissza. A függvény kimenete és viselkedése reference nagymértékben függ attól, hogy az egyes erőforrás-szolgáltatók hogyan valósítják meg a PUT és GET válaszokat.

Névtér: az.

A Bicep-fájlok hozzáférést biztosítanak a referenciafüggvényhez, bár ez általában szükségtelen. Ehelyett ajánlott az erőforrás szimbolikus nevét használni. A referenciafüggvény csak egy properties erőforrás objektumán belül használható, és nem használható olyan legfelső szintű tulajdonságokhoz, mint a name vagy location. Ez általában a szimbolikus nevet használó hivatkozásokra vonatkozik. Az olyan tulajdonságok esetében azonban, mint namepéldául a referenciafüggvény használata nélkül is létrehozhat sablont. Az erőforrás nevével kapcsolatos elegendő információról ismert, hogy közvetlenül kibocsátja a nevet. Fordítási idő tulajdonságainak nevezzük. A Bicep-ellenőrzés képes azonosítani a szimbolikus név helytelen használatát.

Az alábbi példa egy tárfiókot helyez üzembe. Az első két kimenet ugyanazt az eredményt adja.

param storageAccountName string = uniqueString(resourceGroup().id)
param location string = resourceGroup().location

resource storageAccount 'Microsoft.Storage/storageAccounts@2022-09-01' = {
  name: storageAccountName
  location: location
  kind: 'Storage'
  sku: {
    name: 'Standard_LRS'
  }
}

output storageObjectSymbolic object = storageAccount.properties
output storageObjectReference object = reference('storageAccount')
output storageName string = storageAccount.name
output storageLocation string = storageAccount.location

Ha olyan tulajdonságot szeretne lekérni egy meglévő erőforrásból, amely nincs üzembe helyezve a sablonban, használja a következő kulcsszót existing :

param storageAccountName string

resource storageAccount 'Microsoft.Storage/storageAccounts@2022-09-01' existing = {
  name: storageAccountName
}

// use later in template as often as needed
output blobAddress string = storageAccount.properties.primaryEndpoints.blob

Ha egy szülőerőforrásba beágyazott erőforrásra szeretne hivatkozni, használja a beágyazott kiegészítőt (::). Ezt a szintaxist csak akkor használja, ha a beágyazott erőforrást a szülőerőforráson kívülről éri el.

vNet1::subnet1.properties.addressPrefix

Ha nem létező erőforrásra próbál hivatkozni, a hibaüzenet jelenik NotFound meg, és az üzembe helyezés meghiúsul.

resourceId

resourceId([subscriptionId], [resourceGroupName], resourceType, resourceName1, [resourceName2], ...)

Egy erőforrás egyedi azonosítóját adja vissza.

Névtér: az.

A resourceId függvény bicep-fájlokban érhető el, de általában nincs rá szüksége. Ehelyett használja az erőforrás szimbolikus nevét, és érje el a tulajdonságot id .

Ezt a függvényt akkor használja, ha az erőforrás neve nem egyértelmű, vagy nem ugyanabban a Bicep-fájlban van kiépítve. A visszaadott azonosító formátuma attól függően változik, hogy az üzembe helyezés erőforráscsoport, előfizetés, felügyeleti csoport vagy bérlő hatókörében történik-e.

Példa:

param storageAccountName string
param location string = resourceGroup().location

resource storageAccount 'Microsoft.Storage/storageAccounts@2022-09-01' = {
  name: storageAccountName
  location: location
  kind: 'Storage'
  sku: {
    name: 'Standard_LRS'
  }
}

output storageID string = storageAccount.id

A Bicep-fájlban nem üzembe helyezett erőforrások erőforrás-azonosítójának lekéréséhez használja a meglévő kulcsszót.

param storageAccountName string

resource storageAccount 'Microsoft.Storage/storageAccounts@2022-09-01' existing = {
    name: storageAccountName
}

output storageID string = storageAccount.id

További információt a JSON-sablon resourceId függvényében talál.

subscriptionResourceId

subscriptionResourceId([subscriptionId], resourceType, resourceName1, [resourceName2], ...)

Az előfizetés szintjén üzembe helyezett erőforrás egyedi azonosítóját adja vissza.

Névtér: az.

A subscriptionResourceId függvény bicep-fájlokban érhető el, de általában nincs rá szüksége. Ehelyett használja az erőforrás szimbolikus nevét, és érje el a tulajdonságot id .

Az azonosító a következő formátumban lesz visszaadva:

/subscriptions/{subscriptionId}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}

Megjegyzések

Ezzel a függvénnyel lekérheti az erőforráscsoport helyett az előfizetésben üzembe helyezett erőforrások erőforrás-azonosítóját. A visszaadott azonosító eltér a resourceId függvény által visszaadott értéktől azáltal, hogy nem tartalmaz erőforráscsoport-értéket.

subscriptionResourceID példa

Az alábbi Bicep-fájl egy beépített szerepkört rendel hozzá. Üzembe helyezheti egy erőforráscsoportban vagy előfizetésben. A függvény használatával subscriptionResourceId lekéri a beépített szerepkörök erőforrás-azonosítóját.

@description('Principal Id')
param principalId string

@allowed([
  'Owner'
  'Contributor'
  'Reader'
])
@description('Built-in role to assign')
param builtInRoleType string

var roleDefinitionId = {
  Owner: {
    id: subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '8e3af657-a8ff-443c-a75c-2fe8c4bcb635')
  }
  Contributor: {
    id: subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'b24988ac-6180-42a0-ab88-20f7382dd24c')
  }
  Reader: {
    id: subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'acdd72a7-3385-48ef-bd42-f606fba81ae7')
  }
}

resource roleAssignment 'Microsoft.Authorization/roleAssignments@2022-04-01' = {
  name: guid(resourceGroup().id, principalId, roleDefinitionId[builtInRoleType].id)
  properties: {
    roleDefinitionId: roleDefinitionId[builtInRoleType].id
    principalId: principalId
  }
}

managementGroupResourceId

managementGroupResourceId(resourceType, resourceName1, [resourceName2], ...)

A felügyeleti csoport szintjén üzembe helyezett erőforrás egyedi azonosítóját adja vissza.

Névtér: az.

A managementGroupResourceId függvény bicep-fájlokban érhető el, de általában nincs rá szüksége. Ehelyett használja az erőforrás szimbolikus nevét, és érje el a tulajdonságot id .

Az azonosító a következő formátumban lesz visszaadva:

/providers/Microsoft.Management/managementGroups/{managementGroupName}/providers/{resourceType}/{resourceName}

Megjegyzések

Ezzel a függvénnyel lekérheti a felügyeleti csoportban üzembe helyezett erőforrások erőforrás-azonosítóját, és nem erőforráscsoportot. A visszaadott azonosító eltér a resourceId függvény által visszaadott értéktől azáltal, hogy nem tartalmaz előfizetés-azonosítót és erőforráscsoport-értéket.

managementGroupResourceID példa

Az alábbi sablon létrehoz és hozzárendel egy szabályzatdefiníciót. A függvény használatával managementGroupResourceId kéri le a szabályzatdefiníció erőforrás-azonosítóját.

targetScope = 'managementGroup'

@description('Target Management Group')
param targetMG string

@description('An array of the allowed locations, all other locations will be denied by the created policy.')
param allowedLocations array = [
  'australiaeast'
  'australiasoutheast'
  'australiacentral'
]

var mgScope = tenantResourceId('Microsoft.Management/managementGroups', targetMG)
var policyDefinitionName = 'LocationRestriction'

resource policyDefinition 'Microsoft.Authorization/policyDefinitions@2021-06-01' = {
  name: policyDefinitionName
  properties: {
    policyType: 'Custom'
    mode: 'All'
    parameters: {}
    policyRule: {
      if: {
        not: {
          field: 'location'
          in: allowedLocations
        }
      }
      then: {
        effect: 'deny'
      }
    }
  }
}

resource location_lock 'Microsoft.Authorization/policyAssignments@2021-06-01' = {
  name: 'location-lock'
  properties: {
    scope: mgScope
    policyDefinitionId: managementGroupResourceId('Microsoft.Authorization/policyDefinitions', policyDefinitionName)
  }
  dependsOn: [
    policyDefinition
  ]
}

tenantResourceId

tenantResourceId(resourceType, resourceName1, [resourceName2], ...)

A bérlői szinten üzembe helyezett erőforrás egyedi azonosítójának visszaadása.

Névtér: az.

A tenantResourceId függvény bicep-fájlokban érhető el, de általában nincs rá szüksége. Ehelyett használja az erőforrás szimbolikus nevét, és érje el a tulajdonságot id .

Az azonosító a következő formátumban lesz visszaadva:

/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}

A beépített szabályzatdefiníciók bérlőszintű erőforrások. Egy beépített szabályzatdefinícióra hivatkozó szabályzat-hozzárendelés üzembe helyezéséhez használja a függvényt tenantResourceId .

@description('Specifies the ID of the policy definition or policy set definition being assigned.')
param policyDefinitionID string = '0a914e76-4921-4c19-b460-a2d36003525a'

@description('Specifies the name of the policy assignment, can be used defined or an idempotent name as the defaultValue provides.')
param policyAssignmentName string = guid(policyDefinitionID, resourceGroup().name)

resource policyAssignment 'Microsoft.Authorization/policyAssignments@2022-06-01' = {
  name: policyAssignmentName
  properties: {
    scope: subscriptionResourceId('Microsoft.Resources/resourceGroups', resourceGroup().name)
    policyDefinitionId: tenantResourceId('Microsoft.Authorization/policyDefinitions', policyDefinitionID)
  }
}

Következő lépések

  • Az aktuális üzemelő példány értékeinek lekéréséhez tekintse meg az Üzembe helyezés értékfüggvényeit.
  • Ha adott számú alkalommal szeretne iterálni egy erőforrástípus létrehozásakor, tekintse meg a Bicep iteratív ciklusait.