Erőforrásfüggvények ARM-sablonokhoz

Resource Manager az alábbi függvényeket biztosítja az Erőforrásértékek lekéréséhez az Azure Resource Manager sablonban (ARM-sablon):

A paraméterekből, változókból vagy az aktuális üzembe helyezésből származó értékek lekéréséhez tekintse meg az Üzembe helyezés értékfüggvényeit.

Az üzembehelyezési hatókör értékeinek lekéréséhez tekintse meg a Hatókör függvényeket.

Tipp

Azért javasoljuk a Bicep használatát, mert ugyanazokat a képességeket kínálja, mint az ARM-sablonok, és a szintaxis használata egyszerűbb. További információ: erőforrásfüggvények.

extensionResourceId

extensionResourceId(baseResourceId, 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.

A Bicepben használja az extensionResourceId függvényt .

Paraméterek

Paraméter Kötelező Típus Description
baseResourceId Yes sztring Annak az erőforrásnak az erőforrás-azonosítója, amelyre a bővítményerőforrást alkalmazza.
resourceType Yes sztring A bővítményerőforrás típusa, beleértve az erőforrás-szolgáltató névterét is.
resourceName1 Yes sztring A bővítményerőforrás neve.
resourceName2 No sztring Szükség esetén a következő erőforrásnév-szegmens.

Folytassa az erőforrásnevek paraméterként való hozzáadását, ha az erőforrástípus több szegmenst tartalmaz.

Visszatérési érték

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íteni kívánt alaperőforrástól függően változik. Az előfizetés azonosítója például más szegmensekkel rendelkezik, mint egy erőforráscsoport azonosítója.

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

/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 visszaadott formátum a következő:

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

A függvény erőforráscsoporttal való használatára a következő szakaszban láthat példát.

Ha a bővítményerőforrást egy előfizetésre alkalmazza, a visszaadott 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 visszaadott formátum a következő:

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

A függvény felügyeleti csoporttal való használatára a következő szakaszban láthat példát.

extensionResourceId példa

Az alábbi példa egy erőforráscsoport-zárolás erőforrás-azonosítóját adja vissza.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "lockName": {
      "type": "string"
    }
  },
  "variables": {},
  "resources": [],
  "outputs": {
    "lockResourceId": {
      "type": "string",
      "value": "[extensionResourceId(resourceGroup().Id , 'Microsoft.Authorization/locks', parameters('lockName'))]"
    }
  }
}

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ő sablont egy felügyeleti csoportban.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.5.6.12127",
      "templateHash": "1532257987028557958"
    }
  },
  "parameters": {
    "targetMG": {
      "type": "string",
      "metadata": {
        "description": "Target Management Group"
      }
    },
    "allowedLocations": {
      "type": "array",
      "defaultValue": [
        "australiaeast",
        "australiasoutheast",
        "australiacentral"
      ],
      "metadata": {
        "description": "An array of the allowed locations, all other locations will be denied by the created policy."
      }
    }
  },
  "variables": {
    "mgScope": "[tenantResourceId('Microsoft.Management/managementGroups', parameters('targetMG'))]",
    "policyDefinitionName": "LocationRestriction"
  },
  "resources": [
    {
      "type": "Microsoft.Authorization/policyDefinitions",
      "apiVersion": "2020-03-01",
      "name": "[variables('policyDefinitionName')]",
      "properties": {
        "policyType": "Custom",
        "mode": "All",
        "parameters": {},
        "policyRule": {
          "if": {
            "not": {
              "field": "location",
              "in": "[parameters('allowedLocations')]"
            }
          },
          "then": {
            "effect": "deny"
          }
        }
      }
    },
    {
      "type": "Microsoft.Authorization/policyAssignments",
      "apiVersion": "2020-03-01",
      "name": "location-lock",
      "properties": {
        "scope": "[variables('mgScope')]",
        "policyDefinitionId": "[extensionResourceId(variables('mgScope'), 'Microsoft.Authorization/policyDefinitions', variables('policyDefinitionName'))]"
      },
      "dependsOn": [
        "[extensionResourceId(managementGroup().id, 'Microsoft.Authorization/policyDefinitions', variables('policyDefinitionName'))]"
      ]
    }
  ]
}

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.

Lista*

list{Value}(resourceName or resourceIdentifier, apiVersion, functionValues)

A függvény szintaxisa a listaműveletek neve szerint változik. Minden implementáció a listaműveletet támogató erőforrástípus értékeit adja vissza. A művelet nevének a következővel list kell kezdődnie, és lehet, hogy utótaggal rendelkezik. Egyes gyakori használati módok a következőklist: , listKeysés listSecretslistKeyValue.

A Bicepben használja a list* függvényt.

Paraméterek

Paraméter Kötelező Típus Description
resourceName vagy resourceIdentifier Yes sztring Az erőforrás egyedi azonosítója.
apiVersion Yes sztring Az erőforrás-futtatókörnyezet állapotának API-verziója. Általában yyyy-mm-dd formátumban.
functionValues No 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 ebben a cikkben talál példát.

Érvényes felhasználások

A listafüggvények egy erőforrás-definíció tulajdonságaiban használhatók. Ne használjon olyan listafüggvényt, amely bizalmas információkat tesz közzé a sablon 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 tulajdonság-iterációval használja, használhatja a listafüggvényeket input , mert a kifejezés hozzá van rendelve az erőforrástulajdonsághoz. Nem használhatja őket count , mert a listafüggvény feloldása előtt meg kell határozni a számot.

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/service/authorizationServers listSecrets
Microsoft.ApiManagement/service/gateways 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/workspaces/experiments/jobs listoutputfile-k
Microsoft.BotService/botServices/channels listChannelWithKeys
Microsoft.Cache/redis listKeys
Microsoft.CognitiveServices/accounts listKeys
Microsoft.ContainerRegistry/registries listBuildSourceUploadUrl
Microsoft.ContainerRegistry/registries lista hitelesítő adatai
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/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 listSourceShareSynchronizationSettings
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 listConnectionStrings
Microsoft.DocumentDB/databaseAccounts listKeys
Microsoft.DocumentDB/databaseAccounts/notebookWorkspaces listConnectionInfo
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/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.Logic/workflows listCallbackUrl
Microsoft.Logic/workflows 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.Maps/accounts 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.OperationalInsights/workspaces list
Microsoft.OperationalInsights/workspaces listKeys
Microsoft.PolicyInsights/szervizelések listDeployments
Microsoft.RedHatOpenShift/openShiftClusters listCredentials (hitelesítő adatok listázása
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/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, 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')]"
    

Visszatérési érték

A visszaadott objektum a list használt fü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átumot használnak. A függvény formátumának megtekintéséhez vegye fel a kimenetek szakaszba a példasablonban látható módon.

Megjegyzések

Adja meg az erőforrást az erőforrás nevével vagy a resourceId függvénnyel. Ha ugyanabban a sablonban használ függvényt list , amely üzembe helyezi a hivatkozott erőforrást, használja az erőforrás nevét.

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. if A függvény használatával győződjön meg arról, hogy a függvény csak az erőforrás üzembe helyezésekor lesz kiértékelve. Tekintse meg a feltételesen üzembe helyezett erőforrást használó if mintasablon listif függvényét.

Példa lista

Az alábbi példa az üzembehelyezési szkriptek értékének beállításakor használhatólistKeys.

"storageAccountSettings": {
  "storageAccountName": "[variables('storageAccountName')]",
  "storageAccountKey": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName')), '2019-06-01').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 .listAccountSas Adjon át egy objektumot a lejárati időhöz. A lejárati időnek a jövőben kell lennie.

"parameters": {
  "accountSasProperties": {
    "type": "object",
    "defaultValue": {
      "signedServices": "b",
      "signedPermission": "r",
      "signedExpiry": "2020-08-20T11:00:00Z",
      "signedResourceTypes": "s"
    }
  }
},
...
"sasToken": "[listAccountSas(parameters('storagename'), '2018-02-01', parameters('accountSasProperties')).accountSasToken]"

pickZones

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

Meghatározza, hogy egy erőforrástípus támogatja-e a megadott helyhez vagy régióhoz tartozó zónákat. 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ót a Availability Zones támogató Azure-szolgáltatásokban talál.

A Bicepben használja a pickZones függvényt .

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őrizni kívánt régió.
numberOfZones No 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 a támogatott zónák számánál kisebbnek vagy egyenlőnek kell lennie.
offset No egész szám A kezdő logikai zóna eltolása. A függvény hibát ad vissza, ha az eltolás plusz a numberOfZones érték meghaladja a támogatott zónák számát.

Visszatérési érték

Egy tömb a támogatott zónákkal. Ha az alapértelmezett értékeket használja az eltoláshoz, és numberOfZonesegy 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. A zónaredundáns szolgáltatások esetében is üres tömb lesz visszaadva.

[
]

Megjegyzések

Az Azure Availability Zones különböző kategóriákat különböztet meg : zónaszintű és zónaredundáns. A pickZones függvény egy zónaszintű erő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 ü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.

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 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 példa

Az alábbi sablon három eredményt mutat be a pickZones függvény használatához.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {},
  "functions": [],
  "variables": {},
  "resources": [],
  "outputs": {
    "supported": {
      "type": "array",
      "value": "[pickZones('Microsoft.Compute', 'virtualMachines', 'westus2')]"
    },
    "notSupportedRegion": {
      "type": "array",
      "value": "[pickZones('Microsoft.Compute', 'virtualMachines', 'westus')]"
    },
    "notSupportedType": {
      "type": "array",
      "value": "[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 alapján pickZones meghatározhatja, hogy null értéket adjon-e meg a zónáknak, vagy virtuális gépeket rendeljen különböző zónákhoz. Az alábbi példa a zónák rendelkezésre állása alapján állítja be a zóna értékét.

"zones": {
  "value": "[if(not(empty(pickZones('Microsoft.Compute', 'virtualMachines', 'westus2'))), string(add(mod(copyIndex(),3),1)), json('null'))]"
},

Az Azure Cosmos DB nem zónaszintű erőforrás, de a függvénnyel meghatározhatja, hogy engedélyezi-e a pickZones zónaredundanciát a georedundancia számára. Adja át a Microsoft.Storage/storageAccounts erőforrástípust annak meghatározásához, hogy engedélyezi-e a zónaredundanciát.

"resources": [
  {
    "type": "Microsoft.DocumentDB/databaseAccounts",
    "apiVersion": "2021-04-15",
    "name": "[variables('accountName_var')]",
    "location": "[parameters('location')]",
    "kind": "GlobalDocumentDB",
    "properties": {
      "consistencyPolicy": "[variables('consistencyPolicy')[parameters('defaultConsistencyLevel')]]",
      "locations": [
        {
          "locationName": "[parameters('primaryRegion')]",
          "failoverPriority": 0,
          "isZoneRedundant": "[if(empty(pickZones('Microsoft.Storage', 'storageAccounts', parameters('primaryRegion'))), bool('false'), bool('true'))]",
        },
        {
          "locationName": "[parameters('secondaryRegion')]",
          "failoverPriority": 1,
          "isZoneRedundant": "[if(empty(pickZones('Microsoft.Storage', 'storageAccounts', parameters('secondaryRegion'))), bool('false'), bool('true'))]",
        }
      ],
      "databaseAccountOfferType": "Standard",
      "enableAutomaticFailover": "[parameters('automaticFailover')]"
    }
  }
]

Szolgáltatók

A szolgáltatói függvény elavult az ARM-sablonokban. 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 sablonban. A dinamikusan visszaadott API-verzió használata megszakíthatja a sablont, ha a tulajdonságok a verziók között változnak.

A Bicepben a szolgáltatói függvény elavult.

A szolgáltatói művelet továbbra is elérhető a REST API-val. Arm-sablonon kívül is használható egy erőforrás-szolgáltató adatainak lekéréséhez.

Hivatkozás

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

Egy erőforrás futtatókörnyezeti állapotát jelölő objektumot ad vissza.

A Bicepben használja a referenciafüggvényt.

Paraméterek

Paraméter Kötelező Típus Description
resourceName vagy resourceIdentifier Yes sztring Egy erőforrás neve vagy egyedi azonosítója. Amikor egy erőforrásra hivatkozik az aktuális sablonban, csak az erőforrás nevét adja meg paraméterként. Ha egy korábban üzembe helyezett erőforrásra hivatkozik, vagy ha az erőforrás neve nem egyértelmű, adja meg az erőforrás azonosítóját.
apiVersion No sztring A megadott erőforrás API-verziója. Ez a paraméter akkor szükséges, ha az erőforrás nincs kiépítve ugyanabban a sablonban. Általában yyyy-mm-dd formátumban. Az erőforrás érvényes API-verzióiért tekintse meg a sablonreferenciát.
"Teljes" No sztring Érték, amely megadja, hogy a rendszer a teljes erőforrás-objektumot adja-e vissza. Ha nem adja meg, a rendszer 'Full'csak az erőforrás tulajdonságobjektumát adja vissza. A teljes objektum olyan értékeket tartalmaz, mint az erőforrás-azonosító és a hely.

Visszatérési érték

Minden erőforrástípus különböző tulajdonságokat ad vissza a referenciafüggvényhez. A függvény nem ad vissza egyetlen, előre definiált formátumot. A visszaadott érték az argumentum értéke 'Full' alapján is eltér. Egy erőforrástípus tulajdonságainak megtekintéséhez adja vissza az objektumot a kimenetek szakaszban, ahogy az a példában is látható.

Megjegyzések

A referenciafüggvény lekéri egy korábban üzembe helyezett erőforrás vagy az aktuális sablonban üzembe helyezett erőforrás futásidejű állapotát. Ez a cikk mindkét forgatókönyvre mutat be példákat.

A függvény általában reference egy adott értéket ad vissza egy objektumból, például a blobvégpont URI-ját vagy a teljes tartománynevet.

"outputs": {
  "BlobUri": {
    "type": "string",
    "value": "[reference(resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName'))).primaryEndpoints.blob]"
  },
  "FQDN": {
    "type": "string",
    "value": "[reference(resourceId('Microsoft.Network/publicIPAddresses', parameters('ipAddressName'))).dnsSettings.fqdn]"
  }
}

Akkor használja 'Full' , ha olyan erőforrásértékre van szüksége, amely nem része a tulajdonságok sémájának. Kulcstartó-hozzáférési szabályzatok beállításához például lekérheti egy virtuális gép identitástulajdonságát.

{
  "type": "Microsoft.KeyVault/vaults",
  "apiVersion": "2019-09-01",
  "name": "vaultName",
  "properties": {
    "tenantId": "[subscription().tenantId]",
    "accessPolicies": [
      {
        "tenantId": "[reference(resourceId('Microsoft.Compute/virtualMachines', variables('vmName')), '2019-03-01', 'Full').identity.tenantId]",
        "objectId": "[reference(resourceId('Microsoft.Compute/virtualMachines', variables('vmName')), '2019-03-01', 'Full').identity.principalId]",
        "permissions": {
          "keys": [
            "all"
          ],
          "secrets": [
            "all"
          ]
        }
      }
    ],
    ...

Érvényes felhasználások

A reference függvény csak egy sablon vagy egy erőforrás-definíció üzembe helyezési és tulajdonságobjektumának kimeneti szakaszában használható. Nem használható olyan erőforrás-tulajdonságokhoz, mint például typea , namelocation és az erőforrás-definíció egyéb legfelső szintű tulajdonságai. Tulajdonság-iterációval együtt használva használhatja a reference függvénytinput, mert a kifejezés hozzá van rendelve az erőforrástulajdonsághoz.

A függvény nem használható a reference tulajdonság értékének count másolási hurokban való beállítására. A hurok egyéb tulajdonságainak beállítására is használható. A count tulajdonság hivatkozása le van tiltva, mert a tulajdonságot a reference függvény feloldása előtt meg kell határozni.

Ha a reference függvényt vagy bármely list* függvényt egy beágyazott sablon kimeneti szakaszában szeretné használni, be kell állítania a expressionEvaluationOptionsbelső hatókör kiértékelését, vagy csatoltat kell használnia beágyazott sablon helyett.

Ha feltételesen üzembe helyezett erőforrásban használja a reference függvényt, a függvény akkor is kiértékelésre kerül, ha az erőforrás nincs üzembe helyezve. Hibaüzenet jelenik meg, ha a reference függvény nem létező erőforrásra hivatkozik. A függvénnyel if győződjön meg arról, hogy a függvény csak az erőforrás üzembe helyezésekor lesz kiértékelve. Tekintse meg az If függvényt egy feltételesen üzembe helyezett erőforrást használó if mintasablonhoz reference .

Implicit függőség

A függvény használatával reference implicit módon deklarálja, hogy az egyik erőforrás egy másik erőforrástól függ, ha a hivatkozott erőforrás ugyanazon a sablonon belül van kiépítve, és az erőforrásra a neve (nem az erőforrás azonosítója) hivatkozik. A tulajdonságot nem kell használnia dependsOn . A függvény csak akkor lesz kiértékelve, ha a hivatkozott erőforrás üzembe helyezése befejeződött.

Erőforrás neve vagy azonosítója

Amikor ugyanabban a sablonban üzembe helyezett erőforrásra hivatkozik, adja meg az erőforrás nevét.

"value": "[reference(parameters('storageAccountName'))]"

Ha olyan erőforrásra hivatkozik, amely nem ugyanabban a sablonban van üzembe helyezve, adja meg az erőforrás-azonosítót és apiVersiona .

"value": "[reference(resourceId(parameters('storageResourceGroup'), 'Microsoft.Storage/storageAccounts', parameters('storageAccountName')), '2018-07-01')]"

Annak érdekében, hogy ne legyen kétértelmű, hogy melyik erőforrásra hivatkozik, megadhat egy teljes erőforrás-azonosítót.

"value": "[reference(resourceId('Microsoft.Network/publicIPAddresses', parameters('ipAddressName')))]"

Egy erőforrásra mutató teljes hivatkozás létrehozásakor a szegmensek típusból és névből való egyesítésének sorrendje nem egyszerűen a kettő összefűzése. Ehelyett a névtér után használjon típus/név párok sorozatát a legkevésbé specifikustól a legspecifikusabbig:

{resource-provider-namespace}/{parent-resource-type}/{parent-resource-name}[/{child-resource-type}/{child-resource-name}]

Például:

Microsoft.Compute/virtualMachines/myVM/extensions/myExtMicrosoft.Compute/virtualMachines/extensions/myVM/myExt helyes, nem helyes

Az erőforrás-azonosítók létrehozásának egyszerűsítése érdekében a függvény helyett használja az ebben a resourceId()concat() dokumentumban leírt függvényeket.

Felügyelt identitás lekérése

Az Azure-erőforrások felügyelt identitásai olyan bővítmény típusú erőforrástípusok, amelyek implicit módon jönnek létre egyes erőforrásokhoz. Mivel a felügyelt identitás nincs explicit módon definiálva a sablonban, hivatkoznia kell arra az erőforrásra, amelyikre az identitást alkalmazta. Az összes tulajdonság lekérésére használható Full , beleértve az implicit módon létrehozott identitást is.

A minta a következő:

"[reference(resourceId(<resource-provider-namespace>, <resource-name>), <API-version>, 'Full').Identity.propertyName]"

Ha például egy virtuális gépre alkalmazott felügyelt identitás egyszerű azonosítóját szeretné lekérni, használja a következőt:

"[reference(resourceId('Microsoft.Compute/virtualMachines', variables('vmName')),'2019-12-01', 'Full').identity.principalId]",

Egy virtuálisgép-méretezési csoportra alkalmazott felügyelt identitás bérlőazonosítójának lekéréséhez használja a következőt:

"[reference(resourceId('Microsoft.Compute/virtualMachineScaleSets',  variables('vmNodeType0Name')), 2019-12-01, 'Full').Identity.tenantId]"

Hivatkozási példa

Az alábbi példa üzembe helyez egy erőforrást, és hivatkozik erre az erőforrásra.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageAccountName": {
      "type": "string"
    }
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-04-01",
      "name": "[parameters('storageAccountName')]",
      "location": "[resourceGroup().location]",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "Storage",
      "tags": {},
      "properties": {
      }
    }
  ],
  "outputs": {
    "referenceOutput": {
      "type": "object",
      "value": "[reference(parameters('storageAccountName'))]"
    },
    "fullReferenceOutput": {
      "type": "object",
      "value": "[reference(parameters('storageAccountName'), '2021-04-01', 'Full')]"
    }
  }
}

Az előző példa a két objektumot adja vissza. A tulajdonságobjektum formátuma a következő:

{
   "creationTime": "2017-10-09T18:55:40.5863736Z",
   "primaryEndpoints": {
     "blob": "https://examplestorage.blob.core.windows.net/",
     "file": "https://examplestorage.file.core.windows.net/",
     "queue": "https://examplestorage.queue.core.windows.net/",
     "table": "https://examplestorage.table.core.windows.net/"
   },
   "primaryLocation": "southcentralus",
   "provisioningState": "Succeeded",
   "statusOfPrimary": "available",
   "supportsHttpsTrafficOnly": false
}

A teljes objektum formátuma a következő:

{
  "apiVersion":"2021-04-01",
  "location":"southcentralus",
  "sku": {
    "name":"Standard_LRS",
    "tier":"Standard"
  },
  "tags":{},
  "kind":"Storage",
  "properties": {
    "creationTime":"2017-10-09T18:55:40.5863736Z",
    "primaryEndpoints": {
      "blob":"https://examplestorage.blob.core.windows.net/",
      "file":"https://examplestorage.file.core.windows.net/",
      "queue":"https://examplestorage.queue.core.windows.net/",
      "table":"https://examplestorage.table.core.windows.net/"
    },
    "primaryLocation":"southcentralus",
    "provisioningState":"Succeeded",
    "statusOfPrimary":"available",
    "supportsHttpsTrafficOnly":false
  },
  "subscriptionId":"<subscription-id>",
  "resourceGroupName":"functionexamplegroup",
  "resourceId":"Microsoft.Storage/storageAccounts/examplestorage",
  "referenceApiVersion":"2021-04-01",
  "condition":true,
  "isConditionTrue":true,
  "isTemplateResource":false,
  "isAction":false,
  "provisioningOperation":"Read"
}

Az alábbi példasablon egy olyan tárfiókra hivatkozik, amely nincs üzembe helyezve ebben a sablonban. A tárfiók már létezik ugyanabban az előfizetésben.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageResourceGroup": {
      "type": "string"
    },
    "storageAccountName": {
      "type": "string"
    }
  },
  "resources": [],
  "outputs": {
    "ExistingStorage": {
      "type": "object",
      "value": "[reference(resourceId(parameters('storageResourceGroup'), 'Microsoft.Storage/storageAccounts', parameters('storageAccountName')), '2021-04-01')]"
    }
  }
}

resourceGroup

Lásd a resourceGroup hatókörfüggvényt.

A Bicepben használja az erőforráscsoport-hatókör függvényt.

resourceId

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

Egy erőforrás egyedi azonosítóját adja vissza. Ezt a függvényt akkor használja, ha az erőforrás neve nem egyértelmű vagy nem ugyanabban a sablonban 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.

A Bicepben használja a resourceId függvényt.

Paraméterek

Paraméter Kötelező Típus Description
subscriptionId No sztring (GUID formátumban) Az alapértelmezett érték az aktuális előfizetés. Ezt az értéket akkor adja meg, ha egy másik előfizetésben lévő erőforrást kell lekérnie. Ezt az értéket csak erőforráscsoport vagy előfizetés hatókörében történő üzembe helyezéskor adja meg.
resourceGroupName No sztring Az alapértelmezett érték az aktuális erőforráscsoport. Akkor adja meg ezt az értéket, ha egy másik erőforráscsoportban lévő erőforrást kell lekérnie. Ezt az értéket csak akkor adja meg, ha egy erőforráscsoport hatókörében helyezi üzembe.
resourceType Yes sztring Az erőforrás típusa, beleértve az erőforrás-szolgáltató névterét.
resourceName1 Yes sztring Az erőforrás neve.
resourceName2 No sztring Szükség esetén a következő erőforrásnév-szegmens.

Folytassa az erőforrásnevek paraméterként való hozzáadását, ha az erőforrástípus több szegmenst tartalmaz.

Visszatérési érték

Az erőforrás-azonosító különböző formátumokban, különböző hatókörökben jelenik meg:

  • Erőforráscsoport hatóköre:

    /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
    
  • Előfizetés hatóköre:

    /subscriptions/{subscriptionId}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
    
  • Felügyeleti csoport vagy bérlő hatóköre:

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

A félreértések elkerülése érdekében azt javasoljuk, hogy ne használja resourceId az előfizetésben, felügyeleti csoportban vagy bérlőben üzembe helyezett erőforrások használatakor. Ehelyett használja a hatókörhöz tervezett ID függvényt.

Megjegyzések

A megadott paraméterek száma attól függ, hogy az erőforrás szülő- vagy gyermekerőforrás-e, és hogy az erőforrás ugyanabban az előfizetésben vagy erőforráscsoportban található-e.

Ha egy szülőerőforrás erőforrás-azonosítóját szeretné lekérni ugyanabban az előfizetésben és erőforráscsoportban, adja meg az erőforrás típusát és nevét.

"[resourceId('Microsoft.ServiceBus/namespaces', 'namespace1')]"

A gyermekerőforrás erőforrás-azonosítójának lekéréséhez figyeljen az erőforrástípusban lévő szegmensek számára. Adja meg az erőforrástípus egyes szegmenseinek erőforrásnevét. A szegmens neve megegyezik a hierarchia adott részére vonatkozó erőforrás nevével.

"[resourceId('Microsoft.ServiceBus/namespaces/queues/authorizationRules', 'namespace1', 'queue1', 'auth1')]"

Ha egy azonos előfizetésben lévő, de eltérő erőforráscsoportban lévő erőforrás erőforrás-azonosítóját szeretné lekérni, adja meg az erőforráscsoport nevét.

"[resourceId('otherResourceGroup', 'Microsoft.Storage/storageAccounts', 'examplestorage')]"

Ha egy másik előfizetésben és erőforráscsoportban lévő erőforrás erőforrás-azonosítóját szeretné lekérni, adja meg az előfizetés azonosítóját és az erőforráscsoport nevét.

"[resourceId('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 'otherResourceGroup', 'Microsoft.Storage/storageAccounts','examplestorage')]"

Gyakran ezt a függvényt kell használnia, amikor tárfiókot vagy virtuális hálózatot használ egy alternatív erőforráscsoportban. Az alábbi példa bemutatja, hogyan használható egyszerűen egy külső erőforráscsoportból származó erőforrás:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "location": {
      "type": "string"
    },
    "virtualNetworkName": {
      "type": "string"
    },
    "virtualNetworkResourceGroup": {
      "type": "string"
    },
    "subnet1Name": {
      "type": "string"
    },
    "nicName": {
      "type": "string"
    }
  },
  "variables": {
    "subnet1Ref": "[resourceId(parameters('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks/subnets', parameters('virtualNetworkName'), parameters('subnet1Name'))]"
  },
  "resources": [
    {
      "type": "Microsoft.Network/networkInterfaces",
      "apiVersion": "2021-02-01",
      "name": "[parameters('nicName')]",
      "location": "[parameters('location')]",
      "properties": {
        "ipConfigurations": [
          {
            "name": "ipconfig1",
            "properties": {
              "privateIPAllocationMethod": "Dynamic",
              "subnet": {
                "id": "[variables('subnet1Ref')]"
              }
            }
          }
        ]
      }
    }
  ]
}

Példa erőforrás-azonosítóra

Az alábbi példa az erőforráscsoportban lévő tárfiók erőforrás-azonosítóját adja vissza:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "sameRGOutput": {
      "type": "string",
      "value": "[resourceId('Microsoft.Storage/storageAccounts','examplestorage')]"
    },
    "differentRGOutput": {
      "type": "string",
      "value": "[resourceId('otherResourceGroup', 'Microsoft.Storage/storageAccounts','examplestorage')]"
    },
    "differentSubOutput": {
      "type": "string",
      "value": "[resourceId('11111111-1111-1111-1111-111111111111', 'otherResourceGroup', 'Microsoft.Storage/storageAccounts','examplestorage')]"
    },
    "nestedResourceOutput": {
      "type": "string",
      "value": "[resourceId('Microsoft.SQL/servers/databases', 'serverName', 'databaseName')]"
    }
  }
}

Az előző példa kimenete az alapértelmezett értékekkel a következő:

Név Típus Érték
azonosRGOutput Sztring /subscriptions/{current-sub-id}/resourceGroups/examplegroup/providers/Microsoft.Storage/storageAccounts/examplestorage
differentRGOutput Sztring /subscriptions/{current-sub-id}/resourceGroups/otherResourceGroup/providers/Microsoft.Storage/storageAccounts/examplestorage
differentSubOutput Sztring /subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/otherResourceGroup/providers/Microsoft.Storage/storageAccounts/examplestorage
nestedResourceOutput Sztring /subscriptions/{current-sub-id}/resourceGroups/examplegroup/providers/Microsoft.SQL/servers/serverName/databases/databaseName

előfizetést

Tekintse meg az előfizetés hatókörfüggvényét.

A Bicepben használja az előfizetés hatókörfüggvényét.

subscriptionResourceId

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

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

A Bicepben használja a subscriptionResourceId függvényt.

Paraméterek

Paraméter Kötelező Típus Description
subscriptionId No sztring (GUID formátumban) Az alapértelmezett érték az aktuális előfizetés. Ezt az értéket akkor adja meg, ha egy másik előfizetésben lévő erőforrást kell lekérnie.
resourceType Yes sztring Az erőforrás típusa, beleértve az erőforrás-szolgáltató névterét.
resourceName1 Yes sztring Az erőforrás neve.
resourceName2 No sztring Szükség esetén a következő erőforrásnév-szegmens.

Folytassa az erőforrásnevek paraméterként való hozzáadását, ha az erőforrástípus több szegmenst tartalmaz.

Visszatérési érték

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 sablon 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.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "principalId": {
      "type": "string",
      "metadata": {
        "description": "The principal to assign the role to"
      }
    },
    "builtInRoleType": {
      "type": "string",
      "allowedValues": [
        "Owner",
        "Contributor",
        "Reader"
      ],
      "metadata": {
        "description": "Built-in role to assign"
      }
    },
    "roleNameGuid": {
      "type": "string",
      "defaultValue": "[newGuid()]",
      "metadata": {
        "description": "A new GUID used to identify the role assignment"
      }
    }
  },
  "variables": {
    "Owner": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '8e3af657-a8ff-443c-a75c-2fe8c4bcb635')]",
    "Contributor": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'b24988ac-6180-42a0-ab88-20f7382dd24c')]",
    "Reader": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'acdd72a7-3385-48ef-bd42-f606fba81ae7')]"
  },
  "resources": [
    {
      "type": "Microsoft.Authorization/roleAssignments",
      "apiVersion": "2020-10-01-preview",
      "name": "[parameters('roleNameGuid')]",
      "properties": {
        "roleDefinitionId": "[variables(parameters('builtInRoleType'))]",
        "principalId": "[parameters('principalId')]"
      }
    }
  ]
}

managementGroupResourceId

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

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

A Bicepben használja a managementGroupResourceId függvényt.

Paraméterek

Paraméter Kötelező Típus Description
managementGroupResourceId No sztring (GUID formátumban) Az alapértelmezett érték az aktuális felügyeleti csoport. Akkor adja meg ezt az értéket, ha egy másik felügyeleti csoportban lévő erőforrást kell lekérnie.
resourceType Yes sztring Az erőforrás típusa, beleértve az erőforrás-szolgáltató névterét.
resourceName1 Yes sztring Az erőforrás neve.
resourceName2 No sztring Szükség esetén a következő erőforrásnév-szegmens.

Folytassa az erőforrásnevek paraméterként való hozzáadását, ha az erőforrástípus több szegmenst tartalmaz.

Visszatérési érték

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 egy erőforráscsoport helyett. A visszaadott azonosító eltér a resourceId függvény által visszaadott értéktől, mivel nem tartalmaz előfizetés-azonosítót és erőforráscsoport-értéket.

managementGrouopResourceID példa

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

{
  "$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "targetMG": {
      "type": "string",
      "metadata": {
        "description": "Target Management Group"
      }
    },
    "allowedLocations": {
      "type": "array",
      "defaultValue": [
        "australiaeast",
        "australiasoutheast",
        "australiacentral"
      ],
      "metadata": {
        "description": "An array of the allowed locations, all other locations will be denied by the created policy."
      }
    }
  },
  "functions": [],
  "variables": {
    "mgScope": "[tenantResourceId('Microsoft.Management/managementGroups', parameters('targetMG'))]",
    "policyDefinitionName": "LocationRestriction"
  },
  "resources": [
    {
      "type": "Microsoft.Authorization/policyDefinitions",
      "apiVersion": "2020-03-01",
      "name": "[variables('policyDefinitionName')]",
      "properties": {
        "policyType": "Custom",
        "mode": "All",
        "parameters": {},
        "policyRule": {
          "if": {
            "not": {
              "field": "location",
              "in": "[parameters('allowedLocations')]"
            }
          },
          "then": {
            "effect": "deny"
          }
        }
      }
    },
    {
      "type": "Microsoft.Authorization/policyAssignments",
      "apiVersion": "2020-03-01",
      "name": "location-lock",
      "properties": {
        "scope": "[variables('mgScope')]",
        "policyDefinitionId": "[managementGroupResourceId('Microsoft.Authorization/policyDefinitions', variables('policyDefinitionName'))]"
      },
      "dependsOn": [
        "[format('Microsoft.Authorization/policyDefinitions/{0}', variables('policyDefinitionName'))]"
      ]
    }
  ]
}

tenantResourceId

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

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

A Bicepben használja a tenantResourceId függvényt.

Paraméterek

Paraméter Kötelező Típus Description
resourceType Yes sztring Az erőforrás típusa, beleértve az erőforrás-szolgáltató névterét.
resourceName1 Yes sztring Az erőforrás neve.
resourceName2 No sztring Szükség esetén a következő erőforrásnév-szegmens.

Folytassa az erőforrásnevek paraméterként való hozzáadását, ha az erőforrástípus több szegmenst tartalmaz.

Visszatérési érték

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

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

Megjegyzések

Ezzel a függvénnyel lekérheti a bérlőn üzembe helyezett erőforrás erőforrás-azonosítóját. A visszaadott azonosító különbözik más erőforrás-azonosító függvények által visszaadott értékektől azáltal, hogy nem tartalmazza az erőforráscsoport- vagy előfizetés-értékeket.

tenantResourceId példa

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 .

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "policyDefinitionID": {
      "type": "string",
      "defaultValue": "0a914e76-4921-4c19-b460-a2d36003525a",
      "metadata": {
        "description": "Specifies the ID of the policy definition or policy set definition being assigned."
      }
    },
    "policyAssignmentName": {
      "type": "string",
      "defaultValue": "[guid(parameters('policyDefinitionID'), resourceGroup().name)]",
      "metadata": {
        "description": "Specifies the name of the policy assignment, can be used defined or an idempotent name as the defaultValue provides."
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.Authorization/policyAssignments",
      "name": "[parameters('policyAssignmentName')]",
      "apiVersion": "2020-09-01",
      "properties": {
        "scope": "[subscriptionResourceId('Microsoft.Resources/resourceGroups', resourceGroup().name)]",
        "policyDefinitionId": "[tenantResourceId('Microsoft.Authorization/policyDefinitions', parameters('policyDefinitionID'))]"
      }
    }
  ]
}

Következő lépések