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 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 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 list
kezdődik: . Egyes gyakori használati módok a list
következők: , 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 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 numberOfZones
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 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 name
pé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.