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 getSecret
params
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 list
kezdő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 numberOfZones
az 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
- Az aktuális üzemelő példány értékeinek lekéréséhez lásd: Üzembehelyezési érték függvényei.
- Ha egy adott számú alkalommal szeretne iterálni egy erőforrástípus létrehozásakor, tekintse meg a Bicep iteratív ciklusait.