Функции для работы с ресурсами в шаблонах Azure Resource ManagerResource functions for Azure Resource Manager templates

Диспетчер ресурсов предоставляет следующие функции для получения значений ресурсов:Resource Manager provides the following functions for getting resource values:

Получение значений параметров, переменных или текущего развертывания описано в разделе Функции для параметров развертывания.To get values from parameters, variables, or the current deployment, see Deployment value functions.

екстенсионресаурцеидextensionResourceId

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

Возвращает идентификатор ресурса для ресурса расширения, который является типом ресурса, который применяется к другому ресурсу для добавления к его возможностям.Returns the resource ID for an extension resource, which is a resource type that is applied to another resource to add to its capabilities.

parametersParameters

ПараметрParameter обязательныеRequired введитеType ОПИСАНИЕDescription
resourceIdresourceId YesYes строкаstring Идентификатор ресурса для ресурса, к которому применяется ресурс расширения.The resource ID for the resource that the extension resource is applied to.
тип_ресурсаresourceType YesYes строкаstring Тип ресурса, включая пространство имен поставщика ресурсов.Type of resource including resource provider namespace.
имя_ресурса1resourceName1 YesYes строкаstring Имя ресурса.Name of resource.
имя_ресурса2resourceName2 НетNo строкаstring Сегмент имени следующего ресурса, если это необходимо.Next resource name segment, if needed.

Продолжайте добавлять имена ресурсов в качестве параметров, если тип ресурса включает больше сегментов.Continue adding resource names as parameters when the resource type includes more segments.

Возвращаемое значениеReturn value

Базовый формат идентификатора ресурса, возвращаемого этой функцией:The basic format of the resource ID returned by this function is:

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

Сегмент области зависит от расширяемого ресурса.The scope segment varies by the resource being extended.

Когда ресурс расширения применяется к ресурсу, идентификатор ресурса возвращается в следующем формате:When the extension resource is applied to a resource, the resource ID is returned in the following format:

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

Когда ресурс расширения будет применен к группе ресурсов, формат будет следующим:When the extension resource is applied to a resource group, the format is:

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

Когда к подпискеприменяется ресурс расширения, формат имеет вид:When the extension resource is applied to a subscription, the format is:

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

Если ресурс расширения применяется к группе управления, то используется формат:When the extension resource is applied to a management group, the format is:

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

Пример ЕкстенсионресаурцеидextensionResourceId example

В следующем примере возвращается идентификатор ресурса для блокировки группы ресурсов.The following example returns the resource ID for a resource group lock.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-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'))]"
        }
    }
}

list*list*

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

Синтаксис для этой функции зависит от имени из списка операций.The syntax for this function varies by name of the list operations. Каждая реализация возвращает значения для типа ресурса, который поддерживает операцию list.Each implementation returns values for the resource type that supports a list operation. Имя операции должно начинаться с list.The operation name must start with list. Наиболее распространенными вариантами применения являются listKeys и listSecrets.Some common usages are listKeys and listSecrets.

parametersParameters

ПараметрParameter обязательныеRequired введитеType ОПИСАНИЕDescription
имя_ресурса или идентификатор_ресурсаresourceName or resourceIdentifier YesYes строкаstring Уникальный идентификатор ресурса.Unique identifier for the resource.
версия_APIapiVersion YesYes строкаstring Версия API для состояния среды выполнения ресурса.API version of resource runtime state. Как правило, указывается в формате гггг-мм-дд.Typically, in the format, yyyy-mm-dd.
functionValuesfunctionValues НетNo objectobject Объект, содержащий значения для функции.An object that has values for the function. Предоставляйте этот объект только для функций, которые поддерживают прием объекта с параметрами, например listAccountSas в учетной записи хранения.Only provide this object for functions that support receiving an object with parameter values, such as listAccountSas on a storage account. В этой статье показан пример передачи значения функции.An example of passing function values is shown in this article.

Допустимые варианты использованияValid uses

Функции List можно использовать только в свойствах определения ресурса и в разделе Outputs шаблона или развертывания.The list functions can only be used in the properties of a resource definition and the outputs section of a template or deployment. При использовании с итерацией свойстваможно использовать функции list для input, так как выражение назначается свойству ресурса.When used with property iteration, you can use the list functions for input because the expression is assigned to the resource property. Их нельзя использовать с count, так как число должно быть определено до разрешения функции List.You can't use them with count because the count must be determined before the list function is resolved.

Варианты реализации решенияImplementations

Следующая таблица содержит возможные способы использования list*.The possible uses of list* are shown in the following table.

Тип ресурсаResource type Имя функцииFunction name
Microsoft.AnalysisServices/serversMicrosoft.AnalysisServices/servers listGatewayStatuslistGatewayStatus
Microsoft. Аппконфигуратион/КонфигуратионсторесMicrosoft.AppConfiguration/configurationStores ListKeysListKeys
Microsoft.Automation/automationAccountsMicrosoft.Automation/automationAccounts listKeyslistKeys
Microsoft.Batch/batchAccountsMicrosoft.Batch/batchAccounts listkeyslistkeys
Microsoft.BatchAI/workspaces/experiments/jobsMicrosoft.BatchAI/workspaces/experiments/jobs listoutputfileslistoutputfiles
Microsoft. Блокчейн/БлоккчаинмемберсMicrosoft.Blockchain/blockchainMembers листапикэйсlistApiKeys
Microsoft. Блокчейн/Блоккчаинмемберс/ТрансактионнодесMicrosoft.Blockchain/blockchainMembers/transactionNodes листапикэйсlistApiKeys
Microsoft. Ботсервице/Ботсервицес/каналыMicrosoft.BotService/botServices/channels листчаннелвискэйсlistChannelWithKeys
Microsoft.Cache/redisMicrosoft.Cache/redis listKeyslistKeys
Microsoft.CognitiveServices/accountsMicrosoft.CognitiveServices/accounts listKeyslistKeys
Microsoft.ContainerRegistry/registriesMicrosoft.ContainerRegistry/registries listBuildSourceUploadUrllistBuildSourceUploadUrl
Microsoft.ContainerRegistry/registriesMicrosoft.ContainerRegistry/registries listCredentialslistCredentials
Microsoft.ContainerRegistry/registriesMicrosoft.ContainerRegistry/registries listUsageslistUsages
Microsoft.ContainerRegistry/registries/webhooksMicrosoft.ContainerRegistry/registries/webhooks listEventslistEvents
Microsoft. ContainerRegistry/реестров/запускиMicrosoft.ContainerRegistry/registries/runs листлогсасурлlistLogSasUrl
Microsoft. ContainerRegistry/реестра/задачиMicrosoft.ContainerRegistry/registries/tasks листдетаилсlistDetails
Microsoft.ContainerService/managedClustersMicrosoft.ContainerService/managedClusters listClusterAdminCredentiallistClusterAdminCredential
Microsoft.ContainerService/managedClustersMicrosoft.ContainerService/managedClusters listClusterUserCredentiallistClusterUserCredential
Microsoft. ContainerService/Манажедклустерс/АкцесспрофилесMicrosoft.ContainerService/managedClusters/accessProfiles листкредентиалlistCredential
Microsoft. Датабокс/заданияMicrosoft.DataBox/jobs листкредентиалсlistCredentials
Microsoft.DataFactory/datafactories/gatewaysMicrosoft.DataFactory/datafactories/gateways listauthkeyslistauthkeys
Microsoft.DataFactory/factories/integrationruntimesMicrosoft.DataFactory/factories/integrationruntimes listauthkeyslistauthkeys
Microsoft.DataLakeAnalytics/accounts/storageAccounts/ContainersMicrosoft.DataLakeAnalytics/accounts/storageAccounts/Containers listSasTokenslistSasTokens
Microsoft.Devices/iotHubsMicrosoft.Devices/iotHubs listkeyslistkeys
Microsoft.Devices/provisioningServices/keysMicrosoft.Devices/provisioningServices/keys listkeyslistkeys
Microsoft.Devices/provisioningServicesMicrosoft.Devices/provisioningServices listkeyslistkeys
Microsoft.DevTestLab/labsMicrosoft.DevTestLab/labs ListVhdsListVhds
Microsoft.DevTestLab/labs/schedulesMicrosoft.DevTestLab/labs/schedules ListApplicableListApplicable
Microsoft.DevTestLab/labs/users/serviceFabricsMicrosoft.DevTestLab/labs/users/serviceFabrics ListApplicableSchedulesListApplicableSchedules
Microsoft.DevTestLab/labs/virtualMachinesMicrosoft.DevTestLab/labs/virtualMachines ListApplicableSchedulesListApplicableSchedules
Microsoft.DocumentDB/databaseAccountsMicrosoft.DocumentDB/databaseAccounts listConnectionStringslistConnectionStrings
Microsoft.DocumentDB/databaseAccountsMicrosoft.DocumentDB/databaseAccounts listKeyslistKeys
Microsoft.DomainRegistrationMicrosoft.DomainRegistration listDomainRecommendationslistDomainRecommendations
Microsoft.DomainRegistration/topLevelDomainsMicrosoft.DomainRegistration/topLevelDomains listAgreementslistAgreements
Microsoft. EventGrid/DomainsMicrosoft.EventGrid/domains listKeyslistKeys
Microsoft.EventGrid/topicsMicrosoft.EventGrid/topics listKeyslistKeys
Microsoft.EventHub/namespaces/authorizationRulesMicrosoft.EventHub/namespaces/authorizationRules listkeyslistkeys
Microsoft.EventHub/namespaces/disasterRecoveryConfigs/authorizationRulesMicrosoft.EventHub/namespaces/disasterRecoveryConfigs/authorizationRules listkeyslistkeys
Microsoft.EventHub/namespaces/eventhubs/authorizationRulesMicrosoft.EventHub/namespaces/eventhubs/authorizationRules listkeyslistkeys
Microsoft.ImportExport/jobsMicrosoft.ImportExport/jobs listBitLockerKeyslistBitLockerKeys
Microsoft. Лабсервицес/пользователиMicrosoft.LabServices/users листенвиронментсListEnvironments
Microsoft. Лабсервицес/пользователиMicrosoft.LabServices/users листлабсListLabs
Microsoft.Logic/integrationAccounts/agreementsMicrosoft.Logic/integrationAccounts/agreements listContentCallbackUrllistContentCallbackUrl
Microsoft.Logic/integrationAccounts/assembliesMicrosoft.Logic/integrationAccounts/assemblies listContentCallbackUrllistContentCallbackUrl
Microsoft.Logic/integrationAccountsMicrosoft.Logic/integrationAccounts listCallbackUrllistCallbackUrl
Microsoft.Logic/integrationAccountsMicrosoft.Logic/integrationAccounts listKeyVaultKeyslistKeyVaultKeys
Microsoft.Logic/integrationAccounts/mapsMicrosoft.Logic/integrationAccounts/maps listContentCallbackUrllistContentCallbackUrl
Microsoft.Logic/integrationAccounts/partnersMicrosoft.Logic/integrationAccounts/partners listContentCallbackUrllistContentCallbackUrl
Microsoft.Logic/integrationAccounts/schemasMicrosoft.Logic/integrationAccounts/schemas listContentCallbackUrllistContentCallbackUrl
Microsoft.Logic/workflowsMicrosoft.Logic/workflows listCallbackUrllistCallbackUrl
Microsoft.Logic/workflowsMicrosoft.Logic/workflows listSwaggerlistSwagger
Microsoft. Logic/рабочие процессы/триггерыMicrosoft.Logic/workflows/triggers listCallbackUrllistCallbackUrl
Microsoft. Logic/рабочие процессы/версии/триггерыMicrosoft.Logic/workflows/versions/triggers listCallbackUrllistCallbackUrl
Microsoft.MachineLearning/webServicesMicrosoft.MachineLearning/webServices listkeyslistkeys
Microsoft.MachineLearning/WorkspacesMicrosoft.MachineLearning/Workspaces listworkspacekeyslistworkspacekeys
Microsoft.MachineLearningServices/workspaces/computesMicrosoft.MachineLearningServices/workspaces/computes listKeyslistKeys
Microsoft.MachineLearningServices/workspacesMicrosoft.MachineLearningServices/workspaces listKeyslistKeys
Microsoft.Maps/accountsMicrosoft.Maps/accounts listKeyslistKeys
Microsoft.Media/mediaservices/assetsMicrosoft.Media/mediaservices/assets listContainerSaslistContainerSas
Microsoft.Media/mediaservices/assetsMicrosoft.Media/mediaservices/assets listStreamingLocatorslistStreamingLocators
Microsoft.Media/mediaservices/streamingLocatorsMicrosoft.Media/mediaservices/streamingLocators listContentKeyslistContentKeys
Microsoft.Media/mediaservices/streamingLocatorsMicrosoft.Media/mediaservices/streamingLocators listPathslistPaths
Microsoft. Network/АппликатионсекуритиграупсMicrosoft.Network/applicationSecurityGroups листипконфигуратионсlistIpConfigurations
Microsoft.NotificationHubs/Namespaces/authorizationRulesMicrosoft.NotificationHubs/Namespaces/authorizationRules listkeyslistkeys
Microsoft.NotificationHubs/Namespaces/NotificationHubs/authorizationRulesMicrosoft.NotificationHubs/Namespaces/NotificationHubs/authorizationRules listkeyslistkeys
Microsoft.OperationalInsights/workspacesMicrosoft.OperationalInsights/workspaces listKeyslistKeys
Microsoft.Relay/namespaces/authorizationRulesMicrosoft.Relay/namespaces/authorizationRules listkeyslistkeys
Microsoft. Relay/Namespaces/Дисастеррековериконфигс/authorizationRulesMicrosoft.Relay/namespaces/disasterRecoveryConfigs/authorizationRules listkeyslistkeys
Microsoft.Relay/namespaces/HybridConnections/authorizationRulesMicrosoft.Relay/namespaces/HybridConnections/authorizationRules listkeyslistkeys
Microsoft.Relay/namespaces/WcfRelays/authorizationRulesMicrosoft.Relay/namespaces/WcfRelays/authorizationRules listkeyslistkeys
Microsoft.Search/searchServicesMicrosoft.Search/searchServices listAdminKeyslistAdminKeys
Microsoft.Search/searchServicesMicrosoft.Search/searchServices listQueryKeyslistQueryKeys
Microsoft.ServiceBus/namespaces/authorizationRulesMicrosoft.ServiceBus/namespaces/authorizationRules listkeyslistkeys
Microsoft.ServiceBus/namespaces/disasterRecoveryConfigs/authorizationRulesMicrosoft.ServiceBus/namespaces/disasterRecoveryConfigs/authorizationRules listkeyslistkeys
Microsoft.ServiceBus/namespaces/queues/authorizationRulesMicrosoft.ServiceBus/namespaces/queues/authorizationRules listkeyslistkeys
Microsoft.ServiceBus/namespaces/topics/authorizationRulesMicrosoft.ServiceBus/namespaces/topics/authorizationRules listkeyslistkeys
Microsoft.SignalRService/SignalRMicrosoft.SignalRService/SignalR listkeyslistkeys
Microsoft.Storage/storageAccountsMicrosoft.Storage/storageAccounts listAccountSaslistAccountSas
Microsoft.Storage/storageAccountsMicrosoft.Storage/storageAccounts listkeyslistkeys
Microsoft.Storage/storageAccountsMicrosoft.Storage/storageAccounts listServiceSaslistServiceSas
Microsoft.StorSimple/managers/devicesMicrosoft.StorSimple/managers/devices listFailoverSetslistFailoverSets
Microsoft.StorSimple/managers/devicesMicrosoft.StorSimple/managers/devices listFailoverTargetslistFailoverTargets
Microsoft.StorSimple/managersMicrosoft.StorSimple/managers listActivationKeylistActivationKey
Microsoft.StorSimple/managersMicrosoft.StorSimple/managers listPublicEncryptionKeylistPublicEncryptionKey
Microsoft.Web/connectionGatewaysMicrosoft.Web/connectionGateways ListStatusListStatus
microsoft.web/connectionsmicrosoft.web/connections listconsentlinkslistconsentlinks
Microsoft.Web/customApisMicrosoft.Web/customApis listWsdlInterfaceslistWsdlInterfaces
microsoft.web/locationsmicrosoft.web/locations listwsdlinterfaceslistwsdlinterfaces
Microsoft. Web/апиманажементаккаунтс/API/подключенияmicrosoft.web/apimanagementaccounts/apis/connections листконнектионкэйсlistconnectionkeys
Microsoft. Web/апиманажементаккаунтс/API/подключенияmicrosoft.web/apimanagementaccounts/apis/connections листсекретсlistsecrets
microsoft.web/sites/functionsmicrosoft.web/sites/functions listsecretslistsecrets
microsoft.web/sites/hybridconnectionnamespaces/relaysmicrosoft.web/sites/hybridconnectionnamespaces/relays listkeyslistkeys
microsoft.web/sitesmicrosoft.web/sites listsyncfunctiontriggerstatuslistsyncfunctiontriggerstatus
microsoft.web/sites/slots/functionsmicrosoft.web/sites/slots/functions listsecretslistsecrets

Чтобы определить, какие типы ресурсов поддерживают операцию list, можно использовать следующие варианты:To determine which resource types have a list operation, you have the following options:

  • Просмотрите операции REST API для поставщика ресурсов и найдите операции list.View the REST API operations for a resource provider, and look for list operations. Например, в учетных записях хранения есть операция listKeys.For example, storage accounts have the listKeys operation.

  • Воспользуйтесь командлетом PowerShell Get-AzProviderOperation.Use the Get-AzProviderOperation PowerShell cmdlet. В следующем примере извлекаются все операции list для учетных записей хранения:The following example gets all list operations for storage accounts:

    Get-AzProviderOperation -OperationSearchString "Microsoft.Storage/*" | where {$_.Operation -like "*list*"} | FT Operation
    
  • Используйте следующую команду Azure CLI, чтобы отфильтровать только операции list:Use the following Azure CLI command to filter only the list operations:

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

Возвращаемое значениеReturn value

Возвращаемый объект зависит от используемой функции списка.The returned object varies by the list function you use. Например, listKeys для учетной записи хранения возвращает следующий формат.For example, the listKeys for a storage account returns the following format:

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

Другие функции list возвращают данные в других форматах.Other list functions have different return formats. Чтобы просмотреть формат функции, включите ее в раздел outputs, как показано в примере шаблона.To see the format of a function, include it in the outputs section as shown in the example template.

ПримечанияRemarks

Укажите ресурс с помощью его имени или функции resourceId.Specify the resource by using either the resource name or the resourceId function. Если эта функция списка задана в том же шаблоне, с помощью которого выполняется развертывание ресурса, на который указывает ссылка, следует использовать имя ресурса.When using a list function in the same template that deploys the referenced resource, use the resource name.

При использовании функции List в ресурсе, который условно развернут, функция вычисляется, даже если ресурс не развернут.If you use a list function in a resource that is conditionally deployed, the function is evaluated even if the resource isn't deployed. Если функция List ссылается на несуществующий ресурс, возникает ошибка.You get an error if the list function refers to a resource that doesn't exist. Используйте функцию If , чтобы убедиться, что функция вычисляется только при развертывании ресурса.Use the if function to make sure the function is only evaluated when the resource is being deployed. См. функцию if для примера шаблона, который использует if и List с условно развернутым ресурсом.See the if function for a sample template that uses if and list with a conditionally deployed resource.

Пример спискаList example

В следующем примере шаблона показано, как получить в разделе выходных данных первичный и вторичный ключи из учетной записи хранения.The following example template shows how to return the primary and secondary keys from a storage account in the outputs section. Он также возвращает маркер SAS для учетной записи хранения.It also returns a SAS token for the storage account.

Чтобы получить маркер SAS, передайте объект для времени окончания срока действия.To get the SAS token, pass an object for the expiry time. Время окончания срока действия должно быть в будущем.The expiry time must be in the future. В этом примере показано, как использовать функции перечисления.This example is intended to show how you use the list functions. Как правило, нужно использовать токен SAS в значении ресурса, а не возвращать его в качестве выходного значения.Typically, you would use the SAS token in a resource value rather than return it as an output value. Выходные значения хранятся в истории развертывания и не являются безопасными.Output values are stored in the deployment history and aren't secure.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "storagename": {
            "type": "string"
        },
        "location": {
            "type": "string",
            "defaultValue": "southcentralus"
        },
        "accountSasProperties": {
            "type": "object",
            "defaultValue": {
                "signedServices": "b",
                "signedPermission": "r",
                "signedExpiry": "2018-08-20T11:00:00Z",
                "signedResourceTypes": "s"
            }
        }
    },
    "resources": [
        {
            "apiVersion": "2018-02-01",
            "name": "[parameters('storagename')]",
            "location": "[parameters('location')]",
            "type": "Microsoft.Storage/storageAccounts",
            "sku": {
                "name": "Standard_LRS"
            },
            "kind": "StorageV2",
            "properties": {
                "supportsHttpsTrafficOnly": false,
                "accessTier": "Hot",
                "encryption": {
                    "services": {
                        "blob": {
                            "enabled": true
                        },
                        "file": {
                            "enabled": true
                        }
                    },
                    "keySource": "Microsoft.Storage"
                }
            },
            "dependsOn": []
        }
    ],
    "outputs": {
        "keys": {
            "type": "object",
            "value": "[listKeys(parameters('storagename'), '2018-02-01')]"
        },
        "accountSAS": {
            "type": "object",
            "value": "[listAccountSas(parameters('storagename'), '2018-02-01', parameters('accountSasProperties'))]"
        }
    }
}

providersproviders

providers(providerNamespace, [resourceType])

Возвращает сведения о поставщике ресурсов и поддерживаемых типах ресурсов.Returns information about a resource provider and its supported resource types. Если тип ресурса не указан, функция возвращает все типы, поддерживаемые для поставщика ресурсов.If you don't provide a resource type, the function returns all the supported types for the resource provider.

parametersParameters

ПараметрParameter обязательныеRequired введитеType ОПИСАНИЕDescription
пространство_имен_поставщикаproviderNamespace YesYes строкаstring Пространство имен поставщика.Namespace of the provider
тип_ресурсаresourceType НетNo строкаstring Тип ресурса в указанном пространстве имен.The type of resource within the specified namespace.

Возвращаемое значениеReturn value

Все поддерживаемые типы возвращаются в следующем формате:Each supported type is returned in the following format:

{
    "resourceType": "{name of resource type}",
    "locations": [ all supported locations ],
    "apiVersions": [ all supported API versions ]
}

Упорядочение массива возвращаемых значений не гарантируется.Array ordering of the returned values isn't guaranteed.

Пример поставщиковProviders example

В следующем примере шаблона показано, как использовать функцию provider:The following example template shows how to use the provider function:

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "providerNamespace": {
            "type": "string"
        },
        "resourceType": {
            "type": "string"
        }
    },
    "resources": [],
    "outputs": {
        "providerOutput": {
            "value": "[providers(parameters('providerNamespace'), parameters('resourceType'))]",
            "type" : "object"
        }
    }
}

Для поставщика ресурсов Microsoft.Web и типа ресурса sites приведенный выше пример возвращает объект в таком формате:For the Microsoft.Web resource provider and sites resource type, the preceding example returns an object in the following format:

{
  "resourceType": "sites",
  "locations": [
    "South Central US",
    "North Europe",
    "West Europe",
    "Southeast Asia",
    ...
  ],
  "apiVersions": [
    "2016-08-01",
    "2016-03-01",
    "2015-08-01-preview",
    "2015-08-01",
    ...
  ]
}

referencereference

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

Возвращает объект, представляющий состояние среды выполнения ресурса.Returns an object representing a resource's runtime state.

parametersParameters

ПараметрParameter обязательныеRequired введитеType ОПИСАНИЕDescription
имя_ресурса или идентификатор_ресурсаresourceName or resourceIdentifier YesYes строкаstring Имя или уникальный идентификатор ресурса.Name or unique identifier of a resource. При указании ссылки на ресурс в текущем шаблоне укажите в качестве параметра только имя ресурса.When referencing a resource in the current template, provide only the resource name as a parameter. При ссылке на ранее развернутый ресурс укажите идентификатор ресурса.When referencing a previously deployed resource, provide the resource ID.
версия_APIapiVersion НетNo строкаstring Версия API для указанного ресурса.API version of the specified resource. Если ресурс не предоставляется в рамках того же шаблона, необходимо включить этот параметр.Include this parameter when the resource isn't provisioned within same template. Как правило, указывается в формате гггг-мм-дд.Typically, in the format, yyyy-mm-dd. Допустимые версии API для ресурса см. в разделе Справочник по шаблонам.For valid API versions for your resource, see template reference.
Full'Full' НетNo строкаstring Значение, указывающее, следует ли возвращать полный объект ресурса.Value that specifies whether to return the full resource object. Если вы не укажете 'Full', возвращается только объект свойств ресурса.If you don't specify 'Full', only the properties object of the resource is returned. Полный объект включает такие значения, как идентификатор ресурса и расположение.The full object includes values such as the resource ID and location.

Возвращаемое значениеReturn value

Каждый тип ресурса возвращает для функции reference разные свойства.Every resource type returns different properties for the reference function. Функция не возвращает данные в едином предварительно заданном формате.The function doesn't return a single, predefined format. Кроме того, возвращаемое значение зависит от того, указали ли вы полный объект.Also, the returned value differs based on whether you specified the full object. Чтобы просмотреть свойства для типа ресурса, возвратите объект в разделе outputs, как показано в примере.To see the properties for a resource type, return the object in the outputs section as shown in the example.

ПримечанияRemarks

Эталонная функция извлекает состояние среды выполнения ранее развернутого ресурса или ресурса, развернутого в текущем шаблоне.The reference function retrieves the runtime state of either a previously deployed resource or a resource deployed in the current template. В этой статье приведены примеры для обоих сценариев.This article shows examples for both scenarios.

Обычно функция reference используется, чтобы получить определенное значение из объекта, например универсальный код ресурса (URI) конечной точки большого двоичного объекта или полное доменное имя.Typically, you use the reference function to return a particular value from an object, such as the blob endpoint URI or fully qualified domain name.

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

Используйте 'Full', если вам нужны значения ресурсов, которые не являются частью схемы свойств.Use 'Full' when you need resource values that aren't part of the properties schema. Например, чтобы задать политику доступа к хранилищу ключей, получите свойства идентификатора для виртуальной машины.For example, to set key vault access policies, get the identity properties for a virtual machine.

{
  "type": "Microsoft.KeyVault/vaults",
  "properties": {
    "tenantId": "[reference(concat('Microsoft.Compute/virtualMachines/', variables('vmName')), '2017-03-30', 'Full').identity.tenantId]",
    "accessPolicies": [
      {
        "tenantId": "[reference(concat('Microsoft.Compute/virtualMachines/', variables('vmName')), '2017-03-30', 'Full').identity.tenantId]",
        "objectId": "[reference(concat('Microsoft.Compute/virtualMachines/', variables('vmName')), '2017-03-30', 'Full').identity.principalId]",
        "permissions": {
          "keys": [
            "all"
          ],
          "secrets": [
            "all"
          ]
        }
      }
    ],
    ...

Допустимые варианты использованияValid uses

Эталонную функцию можно использовать только в свойствах определения ресурса и в разделе выходных данных шаблона или развертывания.The reference function can only be used in the properties of a resource definition and the outputs section of a template or deployment. При использовании с итерацией свойстваможно использовать функцию reference для input, так как выражение назначается свойству ресурса.When used with property iteration, you can use the reference function for input because the expression is assigned to the resource property. Его нельзя использовать с count, так как счетчик должен быть определен до разрешения функции Reference.You can't use it with count because the count must be determined before the reference function is resolved.

Нельзя использовать функцию Reference в выходных данных вложенного шаблона для возврата ресурса, развернутого во вложенном шаблоне.You can't use the reference function in the outputs of a nested template to return a resource you've deployed in the nested template. Вместо этого используйте связанный шаблон.Instead, use a linked template.

При использовании функции Reference в ресурсе, который условно развернут, функция вычисляется, даже если ресурс не развернут.If you use the reference function in a resource that is conditionally deployed, the function is evaluated even if the resource isn't deployed. Если Ссылочная функция ссылается на несуществующий ресурс, возникает ошибка.You get an error if the reference function refers to a resource that doesn't exist. Используйте функцию If , чтобы убедиться, что функция вычисляется только при развертывании ресурса.Use the if function to make sure the function is only evaluated when the resource is being deployed. См. функцию if для примера шаблона, который использует оператор If и ссылку с условно развернутым ресурсом.See the if function for a sample template that uses if and reference with a conditionally deployed resource.

Неявная зависимостьImplicit dependency

С помощью функции reference вы прямо объявляете, что один ресурс зависит от другого, если ресурс, на который указывает ссылка, предоставляется в том же шаблоне и вы ссылаетесь, используя его имя (а не идентификатор).By using the reference function, you implicitly declare that one resource depends on another resource if the referenced resource is provisioned within same template and you refer to the resource by its name (not resource ID). При этом свойство dependsOn использовать не нужно.You don't need to also use the dependsOn property. Расчет функции выполняется только после развертывания ресурса, на который указывает ссылка.The function isn't evaluated until the referenced resource has completed deployment.

Имя или идентификатор ресурсаResource name or identifier

При ссылке на ресурс, развернутый в том же шаблоне, укажите имя ресурса.When referencing a resource that is deployed in the same template, provide the name of the resource.

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

При ссылке на ресурс, который не развернут в том же шаблоне, укажите идентификатор ресурса.When referencing a resource that isn't deployed in the same template, provide the resource ID.

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

Чтобы избежать неоднозначности в отношении ресурса, на который вы ссылаетесь, можно указать полное имя ресурса.To avoid ambiguity about which resource you're referencing, you can provide a fully qualified resource name.

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

При создании полной ссылки на ресурс порядок объединения сегментов из типа и имени представляет собой не только использование этих двух вариантов.When constructing a fully qualified reference to a resource, the order to combine segments from the type and name isn't simply a concatenation of the two. Вместо этого после пространства имен используйте пары типа и имени, начиная от наименее подходящей к наиболее подходящей.Instead, after the namespace, use a sequence of type/name pairs from least specific to most specific:

{Resource-Provider-Namespace}/{Парент-ресаурце-типе}/{Парент-ресаурце-наме} [/{Чилд-ресаурце-типе}/{Чилд-ресаурце-наме}]{resource-provider-namespace}/{parent-resource-type}/{parent-resource-name}[/{child-resource-type}/{child-resource-name}]

Например,For example:

Microsoft.Compute/virtualMachines/myVM/extensions/myExt — правильно, Microsoft.Compute/virtualMachines/extensions/myVM/myExt — неправильно.Microsoft.Compute/virtualMachines/myVM/extensions/myExt is correct Microsoft.Compute/virtualMachines/extensions/myVM/myExt is not correct

Пример ссылкиReference example

Следующий пример шаблона развертывает ресурс и ссылается на этот ресурс.The following example template deploys a resource, and references that resource.

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

В предыдущем примере возвращаются два объекта.The preceding example returns the two objects. Объект свойств имеет следующий формат:The properties object is in the following format:

{
   "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
}

Полный объект имеет следующий формат:The full object is in the following format:

{
  "apiVersion":"2016-12-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":"2016-12-01",
  "condition":true,
  "isConditionTrue":true,
  "isTemplateResource":false,
  "isAction":false,
  "provisioningOperation":"Read"
}

Следующий пример шаблона ссылается на учетную запись хранения, которая не развертывается в этом шаблоне.The following example template references a storage account that isn't deployed in this template. Учетная запись хранения уже имеется в той же подписке.The storage account already exists within the same subscription.

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

resourceGroupresourceGroup

resourceGroup()

Возвращает объект, который представляет текущую группу ресурсов.Returns an object that represents the current resource group.

Возвращаемое значениеReturn value

Возвращаемый объект имеет следующий формат:The returned object is in the following format:

{
  "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}",
  "name": "{resourceGroupName}",
  "type":"Microsoft.Resources/resourceGroups",
  "location": "{resourceGroupLocation}",
  "managedBy": "{identifier-of-managing-resource}",
  "tags": {
  },
  "properties": {
    "provisioningState": "{status}"
  }
}

Свойство ManagedBy возвращается только для групп ресурсов, содержащих ресурсы, управляемые другой службой.The managedBy property is returned only for resource groups that contain resources that are managed by another service. Для управляемых приложений, кирпичей данных и AKS значение свойства — это идентификатор ресурса для управления ресурсом.For Managed Applications, Databricks, and AKS, the value of the property is the resource ID of the managing resource.

ПримечанияRemarks

Функцию resourceGroup() нельзя использовать в шаблоне, который развернут на уровне подписки.The resourceGroup() function can't be used in a template that is deployed at the subscription level. Ее можно использовать только в шаблонах, развернутых в группе ресурсов.It can only be used in templates that are deployed to a resource group.

Как правило, функция resourceGroup используется для создания ресурсов в одном расположении с группой ресурсов.A common use of the resourceGroup function is to create resources in the same location as the resource group. В следующем примере расположение группы ресурсов используется для назначения расположения веб-сайту.The following example uses the resource group location to assign the location for a web site.

"resources": [
   {
      "apiVersion": "2016-08-01",
      "type": "Microsoft.Web/sites",
      "name": "[parameters('siteName')]",
      "location": "[resourceGroup().location]",
      ...
   }
]

Кроме того, функцию resourceGroup можно использовать для применения тегов из группы ресурсов к ресурсу.You can also use the resourceGroup function to apply tags from the resource group to a resource. Дополнительные сведения см. в статье применение тегов из группы ресурсов.For more information, see Apply tags from resource group.

Пример группы ресурсовResource group example

Следующий пример шаблона возвращает свойства группы ресурсов.The following example template returns the properties of the resource group.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [],
    "outputs": {
        "resourceGroupOutput": {
            "value": "[resourceGroup()]",
            "type" : "object"
        }
    }
}

В предыдущем примере возвращается объект в следующем формате:The preceding example returns an object in the following format:

{
  "id": "/subscriptions/{subscription-id}/resourceGroups/examplegroup",
  "name": "examplegroup",
  "type":"Microsoft.Resources/resourceGroups",
  "location": "southcentralus",
  "properties": {
    "provisioningState": "Succeeded"
  }
}

resourceIdresourceId

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

Возвращает уникальный идентификатор ресурса.Returns the unique identifier of a resource. Используйте эту функцию в том случае, когда имя ресурса является неоднозначным или не было предоставлено в пределах того же шаблона.You use this function when the resource name is ambiguous or not provisioned within the same template.

parametersParameters

ПараметрParameter обязательныеRequired введитеType ОПИСАНИЕDescription
subscriptionIdsubscriptionId НетNo строка (в формате GUID)string (In GUID format) Значение по умолчанию — текущая подписка.Default value is the current subscription. Укажите это значение, если нужно получить ресурс из другой подписки.Specify this value when you need to retrieve a resource in another subscription.
имя_группы_ресурсовresourceGroupName НетNo строкаstring Значение по умолчанию — текущая группа ресурсов.Default value is current resource group. Укажите это значение, если нужно получить ресурс из другой группы ресурсов.Specify this value when you need to retrieve a resource in another resource group.
тип_ресурсаresourceType YesYes строкаstring Тип ресурса, включая пространство имен поставщика ресурсов.Type of resource including resource provider namespace.
имя_ресурса1resourceName1 YesYes строкаstring Имя ресурса.Name of resource.
имя_ресурса2resourceName2 НетNo строкаstring Сегмент имени следующего ресурса, если это необходимо.Next resource name segment, if needed.

Продолжайте добавлять имена ресурсов в качестве параметров, если тип ресурса включает больше сегментов.Continue adding resource names as parameters when the resource type includes more segments.

Возвращаемое значениеReturn value

Идентификатор ресурса возвращается в следующем формате:The resource ID is returned in the following format:

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

При использовании в развертывании на уровне подпискиидентификатор ресурса возвращается в следующем формате:When used in a subscription-level deployment, the resource ID is returned in the following format:

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

Чтобы получить идентификатор в других форматах, см.:To get the ID in other formats, see:

ПримечанияRemarks

Количество предоставляемых параметров зависит от того, является ли ресурс родительским или дочерним, а также находится ли ресурс в той же подписке или группе ресурсов.The number of parameters you provide varies based on whether the resource is a parent or child resource, and whether the resource is in the same subscription or resource group.

Чтобы получить идентификатор ресурса для родительского ресурса в той же подписке и группе ресурсов, укажите тип и имя ресурса.To get the resource ID for a parent resource in the same subscription and resource group, provide the type and name of the resource.

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

Чтобы получить идентификатор ресурса для дочернего ресурса, обратите внимание на количество сегментов в типе ресурса.To get the resource ID for a child resource, pay attention to the number of segments in the resource type. Укажите имя ресурса для каждого сегмента типа ресурса.Provide a resource name for each segment of the resource type. Имя сегмента соответствует ресурсу, существующему для этой части иерархии.The name of the segment corresponds to the resource that exists for that part of the hierarchy.

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

Чтобы получить идентификатор ресурса для ресурса в той же подписке, но в другой группе ресурсов, укажите имя группы ресурсов.To get the resource ID for a resource in the same subscription but different resource group, provide the resource group name.

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

Чтобы получить идентификатор ресурса для ресурса в другой подписке и группе ресурсов, укажите идентификатор подписки и имя группы ресурсов.To get the resource ID for a resource in a different subscription and resource group, provide the subscription ID and resource group name.

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

Эта функция часто необходима при использовании учетной записи хранения или виртуальной сети в альтернативной группе ресурсов.Often, you need to use this function when using a storage account or virtual network in an alternate resource group. В следующем примере показано, как ресурс из внешней группы ресурсов можно легко использовать:The following example shows how a resource from an external resource group can easily be used:

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
      "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": [
  {
      "apiVersion": "2015-05-01-preview",
      "type": "Microsoft.Network/networkInterfaces",
      "name": "[parameters('nicName')]",
      "location": "[parameters('location')]",
      "properties": {
          "ipConfigurations": [{
              "name": "ipconfig1",
              "properties": {
                  "privateIPAllocationMethod": "Dynamic",
                  "subnet": {
                      "id": "[variables('subnet1Ref')]"
                  }
              }
          }]
       }
  }]
}

Пример идентификатора ресурсаResource ID example

Следующий пример шаблона возвращает идентификатор ресурса для учетной записи хранения в группе ресурсов:The following example template returns the resource ID for a storage account in the resource group:

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

Выходные данные из предыдущего примера со значениями по умолчанию:The output from the preceding example with the default values is:

имяName введитеType ЗначениеValue
sameRGOutputsameRGOutput Строка,String /subscriptions/{ИД_текущей_подписки}/resourceGroups/examplegroup/providers/Microsoft.Storage/storageAccounts/examplestorage/subscriptions/{current-sub-id}/resourceGroups/examplegroup/providers/Microsoft.Storage/storageAccounts/examplestorage
differentRGOutputdifferentRGOutput Строка,String /subscriptions/{ИД_текущей_подписки}/resourceGroups/otherResourceGroup/providers/Microsoft.Storage/storageAccounts/examplestorage/subscriptions/{current-sub-id}/resourceGroups/otherResourceGroup/providers/Microsoft.Storage/storageAccounts/examplestorage
differentSubOutputdifferentSubOutput Строка,String /subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/otherResourceGroup/providers/Microsoft.Storage/storageAccounts/examplestorage/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/otherResourceGroup/providers/Microsoft.Storage/storageAccounts/examplestorage
nestedResourceOutputnestedResourceOutput Строка,String /subscriptions/{ИД_текущей_подписки}/resourceGroups/examplegroup/providers/Microsoft.SQL/servers/serverName/databases/databaseName/subscriptions/{current-sub-id}/resourceGroups/examplegroup/providers/Microsoft.SQL/servers/serverName/databases/databaseName

подпискуsubscription

subscription()

Возвращает сведения о подписке для текущего развертывания.Returns details about the subscription for the current deployment.

Возвращаемое значениеReturn value

Функция возвращает значение в следующем формате:The function returns the following format:

{
    "id": "/subscriptions/{subscription-id}",
    "subscriptionId": "{subscription-id}",
    "tenantId": "{tenant-id}",
    "displayName": "{name-of-subscription}"
}

Пример подпискиSubscription example

В следующем примере шаблона показана функция subscription, вызываемая в разделе выходных данных.The following example template shows the subscription function called in the outputs section.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [],
    "outputs": {
        "subscriptionOutput": {
            "value": "[subscription()]",
            "type" : "object"
        }
    }
}

субскриптионресаурцеидsubscriptionResourceId

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

Возвращает уникальный идентификатор ресурса, развернутого на уровне подписки.Returns the unique identifier for a resource deployed at the subscription level.

parametersParameters

ПараметрParameter обязательныеRequired введитеType ОПИСАНИЕDescription
subscriptionIdsubscriptionId НетNo строка (в формате GUID)string (in GUID format) Значение по умолчанию — текущая подписка.Default value is the current subscription. Укажите это значение, если нужно получить ресурс из другой подписки.Specify this value when you need to retrieve a resource in another subscription.
тип_ресурсаresourceType YesYes строкаstring Тип ресурса, включая пространство имен поставщика ресурсов.Type of resource including resource provider namespace.
имя_ресурса1resourceName1 YesYes строкаstring Имя ресурса.Name of resource.
имя_ресурса2resourceName2 НетNo строкаstring Сегмент имени следующего ресурса, если это необходимо.Next resource name segment, if needed.

Продолжайте добавлять имена ресурсов в качестве параметров, если тип ресурса включает больше сегментов.Continue adding resource names as parameters when the resource type includes more segments.

Возвращаемое значениеReturn value

Идентификатор возвращается в следующем формате:The identifier is returned in the following format:

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

ПримечанияRemarks

Эта функция используется для получения идентификатора ресурса для ресурсов, которые развертываются в подписке , а не в группе ресурсов.You use this function to get the resource ID for resources that are deployed to the subscription rather than a resource group. Возвращенный идентификатор отличается от значения, возвращаемого функцией resourceId , не включая значение группы ресурсов.The returned ID differs from the value returned by the resourceId function by not including a resource group value.

Пример СубскриптионресаурцеидsubscriptionResourceID example

Следующий шаблон назначает встроенную роль.The following template assigns a built-in role. Его можно развернуть либо в группе ресурсов, либо в подписке.You can deploy it to either a resource group or subscription. Для получения идентификатора ресурса для встроенных ролей используется функция Субскриптионресаурцеид.It uses the subscriptionResourceId function to get the resource ID for built-in roles.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-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": "2018-09-01-preview",
            "name": "[parameters('roleNameGuid')]",
            "properties": {
                "roleDefinitionId": "[variables(parameters('builtInRoleType'))]",
                "principalId": "[parameters('principalId')]"
            }
        }
    ]
}

тенантресаурцеидtenantResourceId

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

Возвращает уникальный идентификатор ресурса, развернутого на уровне клиента.Returns the unique identifier for a resource deployed at the tenant level.

parametersParameters

ПараметрParameter обязательныеRequired введитеType ОПИСАНИЕDescription
тип_ресурсаresourceType YesYes строкаstring Тип ресурса, включая пространство имен поставщика ресурсов.Type of resource including resource provider namespace.
имя_ресурса1resourceName1 YesYes строкаstring Имя ресурса.Name of resource.
имя_ресурса2resourceName2 НетNo строкаstring Сегмент имени следующего ресурса, если это необходимо.Next resource name segment, if needed.

Продолжайте добавлять имена ресурсов в качестве параметров, если тип ресурса включает больше сегментов.Continue adding resource names as parameters when the resource type includes more segments.

Возвращаемое значениеReturn value

Идентификатор возвращается в следующем формате:The identifier is returned in the following format:

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

ПримечанияRemarks

Эта функция используется для получения идентификатора ресурса для ресурса, развернутого в клиенте.You use this function to get the resource ID for a resource that is deployed to the tenant. Возвращенный идентификатор отличается от значений, возвращаемых другими функциями ИДЕНТИФИКАТОРов ресурсов, не включая значения группы ресурсов или подписки.The returned ID differs from the values returned by other resource ID functions by not including resource group or subscription values.

Дополнительная информацияNext steps