A Bicep erőforrásfüggvényei

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 lásd: Üzembehelyezési értékfüggvények.

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 a 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ített erőforrástól függően változik.

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

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

Ha 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}

Ha 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@2019-09-01' = {
  name: 'locationRestriction'
  properties: {
    policyType: 'Custom'
    mode: 'All'
    parameters: {}
    policyRule: {
      if: {
        not: {
          field: 'location'
          in: allowedLocations
        }
      }
      then: {
        effect: 'deny'
      }
    }
  }
}

resource policyAssignment 'Microsoft.Authorization/policyAssignments@2019-09-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 Azure-Key Vault titkos kulcsát adja vissza. Ezzel a függvénnyel titkos kódot adhat át egy Bicep-modul biztonságos sztringparaméterének.

A függvényt csak egy 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 próbálja használni. Akkor is hibaüzenet jelenik meg, ha ezt a függvényt sztring interpolációval használja, még akkor is, ha a params szakaszban használja.

A függvény csak dekoratorral 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ó: Biztonságos paraméterérték megadása az Azure Key Vault használatával 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álatban.

Paraméterek

Paraméter Kötelező Típus Description
secretName Yes sztring A kulcstartóban tárolt titkos kód neve.

Visszatérési érték

A titkos kódnév titkos értéke.

Példa

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

param sqlServerName string
param adminLogin string

@secure()
param adminPassword string

resource sqlServer 'Microsoft.Sql/servers@2020-11-01-preview' = {
  ...
}

A következő 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éhez, 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@2019-09-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 egy listafüggvényt, amelynek a művelete a következővel listkezdődik: . Egyes gyakori használati módok a következők: list, listKeys, listKeyValueé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 0.4.412-es vagy újabb verziójával hívja meg a listafüggvényt a tartozék operátorával. 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álatban.

Paraméterek

Paraméter Kötelező Típus Description
apiVersion Nem sztring 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 az objektum fogadását paraméterértékekkel, például listAccountSas egy tárfiókban. Ebben a cikkben egy példa látható a függvényértékek átadására.

Érvényes felhasználások

A list függvények egy erőforrás-definíció tulajdonságaiban használhatók. Ne használjon olyan függvényt list , amely bizalmas információkat tesz közzé a Bicep-fájlok kimenetek szakaszában. A kimeneti értékeket a rendszer az üzembe helyezési előzményekben tárolja, és egy rosszindulatú felhasználó lekérheti.

Ha iteratív hurokkal használja, használhatja a list függvényeket input , 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 számot.

Ha feltételesen üzembe helyezett erőforrásban használ függvényt list , 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.

Visszatérési é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. A függvény formátumának megtekintéséhez adja meg a függvényt a kimenetek szakaszba a Bicep-példafájlban látható módon.

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@2019-06-01' = {
  name: 'dscript${uniqueString(resourceGroup().id)}'
  location: location
  kind: 'StorageV2'
  sku: {
    name: 'Standard_LRS'
  }
}

resource dScript 'Microsoft.Resources/deploymentScripts@2019-10-01-preview' = {
  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 .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ény neve
Microsoft. Addons/supportProviders listsupportplaninfo
Microsoft. AnalysisServices/servers listGatewayStatus
Microsoft. ApiManagement/szolgáltatás/authorizationServers listSecrets
Microsoft. ApiManagement/szolgáltatás/átjárók listKeys
Microsoft. ApiManagement/service/identityProviders listSecrets
Microsoft. ApiManagement/service/namedValues listValue
Microsoft. ApiManagement/service/openidConnectProviders listSecrets
Microsoft. ApiManagement/szolgáltatás/előfizetések listSecrets
Microsoft. AppConfiguration/configurationStores ListKeys
Microsoft. AppPlatform/Spring listTestKeys
Microsoft. Automation/automationAccounts listKeys
Microsoft. Batch/batchAccounts listkeys
Microsoft. BatchAI/munkaterületek/kísérletek/feladatok listoutputfiles
Microsoft. BotService/botServices/channels listChannelWithKeys
Microsoft. Gyorsítótár/redis listKeys
Microsoft. CognitiveServices/accounts listKeys
Microsoft. ContainerRegistry/registries listBuildSourceUploadUrl
Microsoft. ContainerRegistry/registries listCredentials
Microsoft. ContainerRegistry/registries 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 listClusterAdminCredential
Microsoft. ContainerService/managedClusters listClusterMonitoringUserCredential
Microsoft. ContainerService/managedClusters listClusterUserCredential
Microsoft. ContainerService/managedClusters/accessProfiles listCredential
Microsoft. DataBox/feladatok listCredentials
Microsoft. DataFactory/datafactories/gateways listauthkeys
Microsoft. DataFactory/factorys/integrationruntimes listauthkeys
Microsoft. DataLakeAnalytics/accounts/storageAccounts/Containers listSasTokens
Microsoft. DataShare/accounts/shares listSynchronizations
Microsoft. DataShare/accounts/shareSubscriptions listSourceShareSynchronizationSettings
Microsoft. DataShare/accounts/shareSubscriptions listSynchronizationDetails
Microsoft. DataShare/accounts/shareSubscriptions listSynchronizations
Microsoft. Eszközök/iotHubs listkeys
Microsoft. Eszközök/iotHubs/iotHubKeys listkeys
Microsoft. Eszközök/provisioningServices/keys listkeys
Microsoft. Eszközök/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 listConnectionStrings
Microsoft. DocumentDB/databaseAccounts listKeys
Microsoft. DocumentDB/databaseAccounts/notebookMunkaterek listConnectionInfo
Microsoft. Tartományregistráció listDomainRecommendations
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. ImportálásExport/feladatok 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/assemblies 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. Logika/munkafolyamatok listCallbackUrl
Microsoft. Logika/munkafolyamatok listSwagger
Microsoft. Logic/workflows/runs/actions listExpressionTraces
Microsoft. Logic/workflows/runs/actions/repetitions listExpressionTraces
Microsoft. Logic/workflows/triggers listCallbackUrl
Microsoft. Logic/workflows/versions/triggers listCallbackUrl
Microsoft. MachineLearning/webServices listkeys
Microsoft. MachineLearning/Workspaces listworkspacekeys
Microsoft. MachineLearningServices/workspaces/computes listKeys
Microsoft. MachineLearningServices/workspaces/computes listNodes
Microsoft. MachineLearningServices/workspaces listKeys
Microsoft. Térképek/fiókok listKeys
Microsoft. Média/mediaservices/assets listContainerSas
Microsoft. Média/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. OperationalInsights/munkaterületek list
Microsoft. OperationalInsights/munkaterületek listKeys
Microsoft. PolicyInsights/szervizelés listDeployments
Microsoft. RedHatOpenShift/openShiftClusters lista hitelesítő adatai
Microsoft. Relay/namespaces/authorizationRules listkeys
Microsoft. Relay/namespaces/disasterRecoveryConfigs/authorizationRules listkeys
Microsoft. Relay/namespaces/HybridConnections/authorizationRules listkeys
Microsoft. Relay/namespaces/WcfRelays/authorizationRules listkeys
Microsoft. Search/searchServices listAdminKeys
Microsoft. Search/searchServices listQueryKeys
Microsoft. ServiceBus/namespaces/authorizationRules listkeys
Microsoft. ServiceBus/namespaces/disasterRecoveryConfigs/authorizationRules listkeys
Microsoft. ServiceBus/namespaces/queues/authorizationRules listkeys
Microsoft. ServiceBus/namespaces/topics/authorizationRules listkeys
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/webhelyek/konfiguráció 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/webhelyek/tárolóhelyek/konfiguráció list
microsoft.web/sites/slots/functions listsecrets

Annak megállapításához, hogy mely erőforrástípusok rendelkeznek listaművelettel, a következő lehetőségek közül választhat:

  • 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 zónaszintű erőforrásokat támogatja. A zónaredundáns szolgáltatások üres tömböt adnak vissza. További információ: Az Availability Zones támogató Azure-szolgáltatások.

Névtér: az.

Paraméterek

Paraméter Kötelező Típus Description
providerNamespace Yes sztring Az erőforrás-típus erőforrás-szolgáltatói névtere a zónatámogatás ellenőrzéséhez.
resourceType Yes sztring A zónatámogatás ellenőrzéséhez használt erőforrástípus.
location Yes sztring A zónatámogatást ellenőrző 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. Egyzónás erőforrásokhoz használja az 1-et. 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.
offset Nem egész szám A kezdő logikai zónától való eltolás. A függvény hibát ad vissza, ha az eltolás és a numberOfZones érték meghaladja a támogatott zónák számát.

Visszatérési érték

A támogatott zónákkal rendelkező tömb. Ha az eltolás és numberOfZonesaz alapértelmezett értékeket használja, a 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 rendszer üres tömböt ad vissza.

[
]

Megjegyzések

Az Azure Availability Zones különböző kategóriái vannak – zóna- és zónaredundáns. A pickZones függvény használható egy zóna rendelkezésre állási zónájának visszaadására. Zónaredundáns szolgáltatások (ZRS) esetén a függvény egy üres tömböt ad vissza. A zónaszintű erőforrások általában az zones erőforrás-definí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 Availability Zones támogató Azure-szolgáltatásokat ismertető cikket.

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 zónaszintű 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 example

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 meg a zónákhoz, vagy virtuális gépeket rendeljen hozzá különböző zónákhoz.

Szolgáltatók

A szolgáltatók függvénye 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 a verziók között változnak.

A szolgáltatók művelete 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 jelölő objektumot ad vissza.

Névtér: az.

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

Az alábbi példa egy tárfiókot helyez üzembe. A tárfiók szimbolikus nevét storageAccount használja egy tulajdonság visszaadásához.

param storageAccountName string

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

output storageEndpoint object = storageAccount.properties.primaryEndpoints

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@2019-06-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 tartozékot (::). 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 NotFound hibaüzenet jelenik 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 elérhető a Bicep-fájlokban, 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 egy erőforráscsoport, előfizetés, felügyeleti csoport vagy bérlő hatókörében történik-e.

Például:

param storageAccountName string

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

output storageID string = storageAccount.id

Ha olyan erőforrás erőforrás-azonosítóját szeretné lekérni, amely nincs üzembe helyezve a Bicep-fájlban, használja a meglévő kulcsszót.

param storageAccountName string

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

output storageID string = storageAccount.id

További információ: A JSON-sablon resourceId függvénye

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 elérhető a Bicep-fájlokban, 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 előfizetésben üzembe helyezett erőforrások erőforrás-azonosítóját egy erőforráscsoport helyett. 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 kéri le 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@2018-09-01-preview' = {
  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 elérhető a Bicep-fájlokban, 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, nem pedig egy 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@2020-03-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@2020-03-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át adja vissza.

Névtér: az.

A tenantResourceId függvény elérhető a Bicep-fájlokban, 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. 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@2019-09-01' = {
  name: policyAssignmentName
  properties: {
    scope: subscriptionResourceId('Microsoft.Resources/resourceGroups', resourceGroup().name)
    policyDefinitionId: tenantResourceId('Microsoft.Authorization/policyDefinitions', policyDefinitionID)
  }
}

Következő lépések