Funciones de recursos para plantillas de ARMResource functions for ARM templates

Resource Manager ofrece las siguientes funciones para obtener valores de recursos en la plantilla de Azure Resource Manager (ARM):Resource Manager provides the following functions for getting resource values in your Azure Resource Manager (ARM) template:

Para obtener valores de parámetro, variables o la implementación actual, consulte Funciones con valores de implementación.To get values from parameters, variables, or the current deployment, see Deployment value functions.

Nota

Este artículo contiene ejemplos de Bicep.This article contains Bicep examples. Bicep está actualmente en versión preliminar.Bicep is currently in preview. Para más información, vea el artículo sobre el proyecto Bicep.For more information, see Project Bicep.

extensionResourceIdextensionResourceId

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

Devuelve el identificador de recurso de un recurso de extensión, que es un tipo de recurso que se aplica a otro recurso para agregarlo a sus capacidades.Returns the resource ID for an extension resource, which is a resource type that is applied to another resource to add to its capabilities.

ParámetrosParameters

ParámetroParameter ObligatorioRequired TipoType DescripciónDescription
resourceIdresourceId Yes stringstring El identificador de recurso para el recurso al que se aplica el recurso de extensión.The resource ID for the resource that the extension resource is applied to.
resourceTyperesourceType Yes stringstring Tipo de recurso, incluido el espacio de nombres del proveedor de recursos.Type of resource including resource provider namespace.
resourceName1resourceName1 Yes stringstring Nombre del recurso.Name of resource.
resourceName2resourceName2 NoNo stringstring Segmento con el nombre del siguiente segmento, si es necesario.Next resource name segment, if needed.

Siga agregando nombres de recursos como parámetros cuando el tipo de recurso incluya más segmentos.Continue adding resource names as parameters when the resource type includes more segments.

Valor devueltoReturn value

El formato básico del identificador de recurso devuelto por esta función es:The basic format of the resource ID returned by this function is:

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

El segmento de ámbito varía según el recurso que se está ampliando.The scope segment varies by the resource being extended.

Cuando el recurso de extensión se aplica a un recurso, el identificador de recurso se devuelve en el formato siguiente: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}

Cuando el recurso de extensión se aplica a un grupo de recursos, el formato es:When the extension resource is applied to a resource group, the format is:

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

Cuando el recurso de extensión se aplica a una suscripción, el formato es:When the extension resource is applied to a subscription, the format is:

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

Cuando el recurso de extensión se aplica a un grupo de administración, el formato es:When the extension resource is applied to a management group, the format is:

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

Ejemplo de extensionResourceIdextensionResourceId example

En el ejemplo siguiente se devuelve el identificador de recurso para el bloqueo de un grupo de recursos.The following example returns the resource ID for a resource group lock.

{
  "$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'))]"
    }
  }
}

Una definición de directiva personalizada implementada en un grupo de administración se implementa como recurso de extensión.A custom policy definition deployed to a management group is implemented as an extension resource. Para crear y asignar una directiva, implemente la siguiente plantilla en un grupo de administración.To create and assign a policy, deploy the following template to a management group.

{
  "$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."
      }
    }
  },
  "variables": {
    "mgScope": "[tenantResourceId('Microsoft.Management/managementGroups', parameters('targetMG'))]",
    "policyDefinition": "LocationRestriction"
  },
  "resources": [
    {
      "type": "Microsoft.Authorization/policyDefinitions",
      "name": "[variables('policyDefinition')]",
      "apiVersion": "2019-09-01",
      "properties": {
        "policyType": "Custom",
        "mode": "All",
        "parameters": {
        },
        "policyRule": {
          "if": {
            "not": {
              "field": "location",
              "in": "[parameters('allowedLocations')]"
            }
          },
          "then": {
            "effect": "deny"
          }
        }
      }
    },
    {
      "type": "Microsoft.Authorization/policyAssignments",
      "name": "location-lock",
      "apiVersion": "2019-09-01",
      "dependsOn": [
        "[variables('policyDefinition')]"
      ],
      "properties": {
        "scope": "[variables('mgScope')]",
        "policyDefinitionId": "[extensionResourceId(variables('mgScope'), 'Microsoft.Authorization/policyDefinitions', variables('policyDefinition'))]"
      }
    }
  ]
}

Las definiciones de directivas integradas son recursos del nivel de inquilino.Built-in policy definitions are tenant level resources. Para obtener un ejemplo de implementación de una definición de directiva integrada, consulte tenantResourceId.For an example of deploying a built-in policy definition, see tenantResourceId.

lista*list*

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

La sintaxis de esta función varía según el nombre de las operaciones de la lista.The syntax for this function varies by name of the list operations. Cada implementación devuelve valores para el tipo de recurso que admite una operación de la lista.Each implementation returns values for the resource type that supports a list operation. El nombre de la operación debe empezar por list.The operation name must start with list. Algunos usos habituales son listKeys, listKeyValue y listSecrets.Some common usages are listKeys, listKeyValue, and listSecrets.

ParámetrosParameters

ParámetroParameter ObligatorioRequired TipoType DescripciónDescription
resourceName o resourceIdentifierresourceName or resourceIdentifier Yes stringstring Identificador único para el recurso.Unique identifier for the resource.
apiVersionapiVersion Yes stringstring Versión de API de estado en tiempo de ejecución de un recurso.API version of resource runtime state. Por lo general, en el formato, aaaa-mm-dd.Typically, in the format, yyyy-mm-dd.
functionValuesfunctionValues NoNo objectobject Un objeto que tiene valores para la función.An object that has values for the function. Proporcione este objeto solo para las funciones que admiten la recepción de un objeto con valores de parámetro, como listAccountSas en una cuenta de almacenamiento.Only provide this object for functions that support receiving an object with parameter values, such as listAccountSas on a storage account. En este artículo se muestra un ejemplo de cómo pasar los valores de funciones.An example of passing function values is shown in this article.

Usos válidosValid uses

Las funciones de lista se pueden usar en las propiedades de una definición de recursos.The list functions can be used in the properties of a resource definition. No use una función de lista que exponga información confidencial en la sección de salidas de una plantilla.Don't use a list function that exposes sensitive information in the outputs section of a template. Los valores de salida se almacenan en el historial de implementaciones y un usuario malintencionado podría recuperarlos.Output values are stored in the deployment history and could be retrieved by a malicious user.

Cuando se usa con la iteración de la propiedad, puede usar las funciones de lista para input porque la expresión se asigna a la propiedad de recurso.When used with property iteration, you can use the list functions for input because the expression is assigned to the resource property. No se pueden utilizar con count porque debe determinarse el recuento antes de resolver la función de lista.You can't use them with count because the count must be determined before the list function is resolved.

ImplementacionesImplementations

Los usos posibles de la lista* se muestran en la tabla siguiente.The possible uses of list* are shown in the following table.

Tipo de recursoResource type Nombre de funciónFunction name
Microsoft.Addons/supportProvidersMicrosoft.Addons/supportProviders listsupportplaninfolistsupportplaninfo
Microsoft.AnalysisServices/serversMicrosoft.AnalysisServices/servers listGatewayStatuslistGatewayStatus
Microsoft.ApiManagement/service/authorizationServersMicrosoft.ApiManagement/service/authorizationServers listSecretslistSecrets
Microsoft.ApiManagement/service/gatewaysMicrosoft.ApiManagement/service/gateways listKeyslistKeys
Microsoft.ApiManagement/service/identityProvidersMicrosoft.ApiManagement/service/identityProviders listSecretslistSecrets
Microsoft.ApiManagement/service/namedValuesMicrosoft.ApiManagement/service/namedValues listValuelistValue
Microsoft.ApiManagement/service/openidConnectProvidersMicrosoft.ApiManagement/service/openidConnectProviders listSecretslistSecrets
Microsoft.AppConfiguration/configurationStoresMicrosoft.AppConfiguration/configurationStores ListKeysListKeys
Microsoft.AppPlatform/SpringMicrosoft.AppPlatform/Spring listTestKeyslistTestKeys
Microsoft.Automation/automationAccountsMicrosoft.Automation/automationAccounts listKeyslistKeys
Microsoft.Batch/batchAccountsMicrosoft.Batch/batchAccounts listkeyslistkeys
Microsoft.BatchAI/workspaces/experiments/jobsMicrosoft.BatchAI/workspaces/experiments/jobs listoutputfileslistoutputfiles
Microsoft.Blockchain/blockchainMembersMicrosoft.Blockchain/blockchainMembers listApiKeyslistApiKeys
Microsoft.Blockchain/blockchainMembers/transactionNodesMicrosoft.Blockchain/blockchainMembers/transactionNodes listApiKeyslistApiKeys
Microsoft.BotService/botServices/channelsMicrosoft.BotService/botServices/channels listChannelWithKeyslistChannelWithKeys
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/agentpoolsMicrosoft.ContainerRegistry/registries/agentpools listQueueStatuslistQueueStatus
Microsoft.ContainerRegistry/registries/buildTasksMicrosoft.ContainerRegistry/registries/buildTasks listSourceRepositoryPropertieslistSourceRepositoryProperties
Microsoft.ContainerRegistry/registries/buildTasks/stepsMicrosoft.ContainerRegistry/registries/buildTasks/steps listBuildArgumentslistBuildArguments
Microsoft.ContainerRegistry/registries/taskrunsMicrosoft.ContainerRegistry/registries/taskruns listDetailslistDetails
Microsoft.ContainerRegistry/registries/webhooksMicrosoft.ContainerRegistry/registries/webhooks listEventslistEvents
Microsoft.ContainerRegistry/registries/runsMicrosoft.ContainerRegistry/registries/runs listLogSasUrllistLogSasUrl
Microsoft.ContainerRegistry/registries/tasksMicrosoft.ContainerRegistry/registries/tasks listDetailslistDetails
Microsoft.ContainerService/managedClustersMicrosoft.ContainerService/managedClusters listClusterAdminCredentiallistClusterAdminCredential
Microsoft.ContainerService/managedClustersMicrosoft.ContainerService/managedClusters listClusterMonitoringUserCredentiallistClusterMonitoringUserCredential
Microsoft.ContainerService/managedClustersMicrosoft.ContainerService/managedClusters listClusterUserCredentiallistClusterUserCredential
Microsoft.ContainerService/managedClusters/accessProfilesMicrosoft.ContainerService/managedClusters/accessProfiles listCredentiallistCredential
Microsoft.DataBox/jobsMicrosoft.DataBox/jobs listCredentialslistCredentials
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.DataShare/accounts/sharesMicrosoft.DataShare/accounts/shares listSynchronizationslistSynchronizations
Microsoft.DataShare/accounts/shareSubscriptionsMicrosoft.DataShare/accounts/shareSubscriptions listSourceShareSynchronizationSettingslistSourceShareSynchronizationSettings
Microsoft.DataShare/accounts/shareSubscriptionsMicrosoft.DataShare/accounts/shareSubscriptions listSynchronizationDetailslistSynchronizationDetails
Microsoft.DataShare/accounts/shareSubscriptionsMicrosoft.DataShare/accounts/shareSubscriptions listSynchronizationslistSynchronizations
Microsoft.Devices/iotHubsMicrosoft.Devices/iotHubs listkeyslistkeys
Microsoft.Devices/iotHubs/iotHubKeysMicrosoft.Devices/iotHubs/iotHubKeys 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.DocumentDB/databaseAccounts/notebookWorkspacesMicrosoft.DocumentDB/databaseAccounts/notebookWorkspaces listConnectionInfolistConnectionInfo
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.Kusto/Clusters/DatabasesMicrosoft.Kusto/Clusters/Databases ListPrincipalsListPrincipals
Microsoft.LabServices/usersMicrosoft.LabServices/users ListEnvironmentsListEnvironments
Microsoft.LabServices/usersMicrosoft.LabServices/users ListLabsListLabs
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/workflows/runs/actionsMicrosoft.Logic/workflows/runs/actions listExpressionTraceslistExpressionTraces
Microsoft.Logic/workflows/runs/actions/repetitionsMicrosoft.Logic/workflows/runs/actions/repetitions listExpressionTraceslistExpressionTraces
Microsoft.Logic/workflows/triggersMicrosoft.Logic/workflows/triggers listCallbackUrllistCallbackUrl
Microsoft.Logic/workflows/versions/triggersMicrosoft.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/workspaces/computesMicrosoft.MachineLearningServices/workspaces/computes listNodeslistNodes
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/applicationSecurityGroupsMicrosoft.Network/applicationSecurityGroups listIpConfigurationslistIpConfigurations
Microsoft.NotificationHubs/Namespaces/authorizationRulesMicrosoft.NotificationHubs/Namespaces/authorizationRules listkeyslistkeys
Microsoft.NotificationHubs/Namespaces/NotificationHubs/authorizationRulesMicrosoft.NotificationHubs/Namespaces/NotificationHubs/authorizationRules listkeyslistkeys
Microsoft.OperationalInsights/workspacesMicrosoft.OperationalInsights/workspaces listlist
Microsoft.OperationalInsights/workspacesMicrosoft.OperationalInsights/workspaces listKeyslistKeys
Microsoft.PolicyInsights/remediationsMicrosoft.PolicyInsights/remediations listDeploymentslistDeployments
Microsoft.RedHatOpenShift/openShiftClustersMicrosoft.RedHatOpenShift/openShiftClusters listCredentialslistCredentials
Microsoft.Relay/namespaces/authorizationRulesMicrosoft.Relay/namespaces/authorizationRules listkeyslistkeys
Microsoft.Relay/namespaces/disasterRecoveryConfigs/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.Synapse/workspaces/integrationRuntimesMicrosoft.Synapse/workspaces/integrationRuntimes listAuthKeyslistAuthKeys
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/apimanagementaccounts/apis/connectionsmicrosoft.web/apimanagementaccounts/apis/connections listconnectionkeyslistconnectionkeys
microsoft.web/apimanagementaccounts/apis/connectionsmicrosoft.web/apimanagementaccounts/apis/connections listsecretslistsecrets
microsoft.web/sites/backupsmicrosoft.web/sites/backups listlist
Microsoft.Web/sites/configMicrosoft.Web/sites/config listlist
microsoft.web/sites/functionsmicrosoft.web/sites/functions listkeyslistkeys
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
microsoft.web/sites/slots/backupsmicrosoft.web/sites/slots/backups listlist
Microsoft.Web/sites/slots/configMicrosoft.Web/sites/slots/config listlist
microsoft.web/sites/slots/functionsmicrosoft.web/sites/slots/functions listsecretslistsecrets

Para determinar qué tipos de recursos tienen una operación de lista, dispone de las siguientes opciones:To determine which resource types have a list operation, you have the following options:

  • Vea las operaciones de API de REST para un proveedor de recursos y busque operaciones List.View the REST API operations for a resource provider, and look for list operations. Por ejemplo, las cuentas de almacenamiento tienen una operación listKeys.For example, storage accounts have the listKeys operation.

  • Utilice el cmdlet de PowerShell Get-AzProviderOperation.Use the Get-AzProviderOperation PowerShell cmdlet. En el ejemplo siguiente se obtienen todas las operaciones List para cuentas de almacenamiento:The following example gets all list operations for storage accounts:

    Get-AzProviderOperation -OperationSearchString "Microsoft.Storage/*" | where {$_.Operation -like "*list*"} | FT Operation
    
  • Use el siguiente comando de la CLI de Azure para filtrar solo las operaciones de la lista: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')]"
    

Valor devueltoReturn value

El objeto devuelto varía según la función de la lista que use.The returned object varies by the list function you use. Por ejemplo, listKeys para una cuenta de almacenamiento devuelve el siguiente formato: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}"
    }
  ]
}

Otras funciones List tienen diferentes formatos de retorno.Other list functions have different return formats. Para ver el formato de una función, inclúyalo en la sección de resultados tal y como se muestra en la plantilla de ejemplo.To see the format of a function, include it in the outputs section as shown in the example template.

ObservacionesRemarks

Especifique el recursos con el nombre del recurso o la función resourceId.Specify the resource by using either the resource name or the resourceId function. Al usar una función de la lista en la misma plantilla que implementa el recurso al que se hace referencia, use el nombre del recurso.When using a list function in the same template that deploys the referenced resource, use the resource name.

Si usa una función list con un recurso que se implementa de forma condicional, se puede evaluar la función incluso si el recurso no está implementado.If you use a list function in a resource that is conditionally deployed, the function is evaluated even if the resource isn't deployed. Se genera un error si la función list hace referencia a un recurso que no existe.You get an error if the list function refers to a resource that doesn't exist. Use la función if para asegurarse de que la función se evalúa solo cuando se implementa el recurso.Use the if function to make sure the function is only evaluated when the resource is being deployed. Consulte la función if function para una plantilla de ejemplo que use if y list con un recurso implementado de forma condicional.See the if function for a sample template that uses if and list with a conditionally deployed resource.

Ejemplo de listaList example

En el ejemplo siguiente se usa listKeys al establecer un valor para los scripts de implementación.The following example uses listKeys when setting a value for deployment scripts.

"storageAccountSettings": {
  "storageAccountName": "[variables('storageAccountName')]",
  "storageAccountKey": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName')), '2019-06-01').keys[0].value]"
}

En el ejemplo siguiente se muestra una función de lista que toma un parámetro.The next example shows a list function that takes a parameter. En este caso, la función se listAccountSas.In this case, the function is listAccountSas. Pase un objeto para la hora de expiración.Pass an object for the expiry time. Dicha hora debe ser futura.The expiry time must be in the future.

"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]"

pickZonespickZones

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

Determina si un tipo de recurso admite zonas para una región.Determines whether a resource type supports zones for a region.

ParámetrosParameters

ParámetroParameter ObligatorioRequired TipoType DescripciónDescription
providerNamespaceproviderNamespace Yes stringstring Espacio de nombres del proveedor de recursos para que el tipo de recurso compruebe la compatibilidad de la zona.The resource provider namespace for the resource type to check for zone support.
resourceTyperesourceType Yes stringstring El tipo de recurso para comprobar la compatibilidad de la zona.The resource type to check for zone support.
ubicaciónlocation Yes stringstring Región en la que se va a comprobar la compatibilidad de la zona.The region to check for zone support.
numberOfZonesnumberOfZones NoNo integerinteger Número de zonas lógicas que se van a devolver.The number of logical zones to return. El valor predeterminado es 1.The default is 1. El número debe ser un entero positivo de 1 a 3.The number must a positive integer from 1 to 3. Use 1 para los recursos de una sola zona.Use 1 for single-zoned resources. En el caso de los recursos de varias zonas, el valor debe ser menor o igual que el número de zonas admitidas.For multi-zoned resources, the value must be less than or equal to the number of supported zones.
offsetoffset NoNo integerinteger Desplazamiento de la zona lógica inicial.The offset from the starting logical zone. La función devuelve un error si el desplazamiento más el valor de numberOfZones supera el número de zonas admitidas.The function returns an error if offset plus numberOfZones exceeds the number of supported zones.

Valor devueltoReturn value

Matriz con las zonas admitidas.An array with the supported zones. Cuando se usan los valores predeterminados para offset y numberOfZones, un tipo de recurso y una región que admiten zonas devuelven la siguiente matriz:When using the default values for offset and numberOfZones, a resource type and region that supports zones returns the following array:

[
    "1"
]

Cuando el parámetro numberOfZones se establece en 3, devuelve lo siguiente:When the numberOfZones parameter is set to 3, it returns:

[
    "1",
    "2",
    "3"
]

Si el tipo de recurso o la región no admiten zonas, se devuelve una matriz vacía.When the resource type or region doesn't support zones, an empty array is returned.

[
]

Ejemplo de pickZonespickZones example

En la plantilla siguiente se muestran tres resultados para usar la función pickZones.The following template shows three results for using the pickZones function.

{
  "$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', 'northcentralus')]"
    },
    "notSupportedType": {
      "type": "array",
      "value": "[pickZones('Microsoft.Cdn', 'profiles', 'westus2')]"
    }
  }
}

La salida de los ejemplos anteriores devuelve tres matrices.The output from the preceding examples returns three arrays.

NombreName TipoType ValueValue
admitidosupported arrayarray [ "1" ][ "1" ]
notSupportedRegionnotSupportedRegion arrayarray [][]
notSupportedTypenotSupportedType arrayarray [][]

Puede usar la respuesta de pickZones para determinar si se debe proporcionar un valor null para las zonas o asignar máquinas virtuales a diferentes zonas.You can use the response from pickZones to determine whether to provide null for zones or assign virtual machines to different zones. En el ejemplo siguiente se establece un valor para la zona en función de la disponibilidad de las zonas.The following example sets a value for the zone based on the availability of zones.

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

providersproviders

providers(providerNamespace, [resourceType])

Devuelve información acerca de un proveedor de recursos y sus tipos de recursos admitidos.Returns information about a resource provider and its supported resource types. Si no proporciona un tipo de recurso, la función devuelve todos los tipos admitidos para el proveedor de recursos.If you don't provide a resource type, the function returns all the supported types for the resource provider.

ParámetrosParameters

ParámetroParameter ObligatorioRequired TipoType DescripciónDescription
providerNamespaceproviderNamespace Yes stringstring Espacio de nombres del proveedorNamespace of the provider
resourceTyperesourceType NoNo stringstring El tipo de recurso en el espacio de nombres especificado.The type of resource within the specified namespace.

Valor devueltoReturn value

Se devuelve cada tipo admitido en el formato siguiente:Each supported type is returned in the following format:

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

No se garantiza el orden de matriz de los valores devueltos.Array ordering of the returned values isn't guaranteed.

Ejemplo de proveedoresProviders example

En la plantilla de ejemplo siguiente se muestra cómo utilizar la función de proveedor:The following example template shows how to use the provider function:

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

Para el proveedor de recursos Microsoft.Web y el tipo de recurso sites, el ejemplo anterior devuelve un objeto con el formato siguiente: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'])

Devuelve un objeto que representa el estado de tiempo de ejecución de un recurso.Returns an object representing a resource's runtime state.

ParámetrosParameters

ParámetroParameter ObligatorioRequired TipoType DescripciónDescription
resourceName o resourceIdentifierresourceName or resourceIdentifier Yes stringstring Nombre o identificador único de un recurso.Name or unique identifier of a resource. Al hacer referencia a un recurso en la plantilla actual, proporcione solo el nombre del recurso como parámetro.When referencing a resource in the current template, provide only the resource name as a parameter. Al hacer referencia a un recurso implementado anteriormente o cuando el nombre del recurso sea ambiguo, proporcione el identificador del recurso.When referencing a previously deployed resource or when the name of the resource is ambiguous, provide the resource ID.
apiVersionapiVersion NoNo stringstring Versión de la API del recurso especificado.API version of the specified resource. Este parámetro es necesario no está aprovisionado dentro de la misma plantilla.This parameter is required when the resource isn't provisioned within same template. Por lo general, en el formato, aaaa-mm-dd.Typically, in the format, yyyy-mm-dd. Para conocer las versiones válidas de la API para su recurso, consulte la referencia de la plantilla.For valid API versions for your resource, see template reference.
'Full''Full' NoNo stringstring Valor que especifica si se devuelve el objeto de recurso completo.Value that specifies whether to return the full resource object. Si no se especifica 'Full', se devuelve solo el objeto de propiedades del recurso.If you don't specify 'Full', only the properties object of the resource is returned. El objeto completo incluye valores como el identificador de recurso y la ubicación.The full object includes values such as the resource ID and location.

Valor devueltoReturn value

Cada tipo de recurso devuelve propiedades diferentes para la función de referencia.Every resource type returns different properties for the reference function. La función no devuelve un solo formato predefinido.The function doesn't return a single, predefined format. Además, el valor devuelto difiere en función del valor del argumento 'Full'.Also, the returned value differs based on the value of the 'Full' argument. Para ver las propiedades de un tipo de recurso, devuelva el objeto en la sección de resultados tal como se muestra en el ejemplo.To see the properties for a resource type, return the object in the outputs section as shown in the example.

ObservacionesRemarks

La función de referencia recupera el estado del entorno de ejecución de un recurso previamente implementado o de un recurso implementado en la plantilla actual.The reference function retrieves the runtime state of either a previously deployed resource or a resource deployed in the current template. En este artículo se muestran ejemplos de ambos escenarios.This article shows examples for both scenarios.

Normalmente, se usa la función de referencia para devolver un valor determinado de un objeto, como el identificador URI del punto de conexión de blob o el nombre de dominio completo.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": {
    "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]"
  }
}

Utilice 'Full' cuando necesite valores de recurso que no forman parte del esquema de propiedades.Use 'Full' when you need resource values that aren't part of the properties schema. Por ejemplo, para establecer directivas de acceso del almacén de claves, obtenga las propiedades de identidad para una máquina virtual.For example, to set key vault access policies, get the identity properties for a virtual machine.

{
  "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"
          ]
        }
      }
    ],
    ...

Usos válidosValid uses

La función de referencia solo se puede utilizar en las propiedades de una definición de recursos y en la sección de salidas de una plantilla o implementación.The reference function can only be used in the properties of a resource definition and the outputs section of a template or deployment. Cuando se usa con la iteración de la propiedad, puede usar la función reference para input porque la expresión se asigna a la propiedad de recurso.When used with property iteration, you can use the reference function for input because the expression is assigned to the resource property.

No se puede utilizar la función reference para establecer el valor de la propiedad count en un bucle de copia.You can't use the reference function to set the value of the count property in a copy loop. Puede usarla para establecer otras propiedades en el bucle.You can use to set other properties in the loop. La referencia está bloqueada para la propiedad count, porque esa propiedad se debe determinar antes de que se resuelva la función reference.Reference is blocked for the count property because that property must be determined before the reference function is resolved.

Para usar la función reference o cualquier función list* en la sección de salidas de una plantilla anidada, debe establecer expressionEvaluationOptions para usar la evaluación de ámbito interno o una plantilla vinculada en lugar de una anidada.To use the reference function or any list* function in the outputs section of a nested template, you must set the expressionEvaluationOptions to use inner scope evaluation or use a linked instead of a nested template.

Si usa una función reference con un recurso que se implementa de forma condicional, se puede evaluar la función incluso si el recurso no está implementado.If you use the reference function in a resource that is conditionally deployed, the function is evaluated even if the resource isn't deployed. Se genera un error si la función reference a un recurso que no existe.You get an error if the reference function refers to a resource that doesn't exist. Use la función if para asegurarse de que la función se evalúa solo cuando se implementa el recurso.Use the if function to make sure the function is only evaluated when the resource is being deployed. Consulte la función if para una plantilla de ejemplo que use if y reference con un recurso implementado de forma condicional.See the if function for a sample template that uses if and reference with a conditionally deployed resource.

Dependencia implícitaImplicit dependency

Mediante el uso de la función de referencia, se declara implícitamente que un recurso depende de otro recurso si el recurso al que se hace referencia se aprovisiona en la misma plantilla y se hace referencia a él por su nombre (y no por el identificador del recurso).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). No tiene que usar también la propiedad dependsOn.You don't need to also use the dependsOn property. La función no se evalúa hasta que el recurso al que se hace referencia haya completado la implementación.The function isn't evaluated until the referenced resource has completed deployment.

Nombre de recurso o identificadorResource name or identifier

Al hacer referencia a un recurso que esté implementado en la misma plantilla, especifique el nombre del recurso.When referencing a resource that is deployed in the same template, provide the name of the resource.

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

Al hacer referencia a un recurso que no esté implementado en la misma plantilla, especifique el identificador del recurso y apiVersion.When referencing a resource that isn't deployed in the same template, provide the resource ID and apiVersion.

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

Para evitar la ambigüedad sobre cuál es el recurso al que hace referencia, puede proporcionar un nombre de recurso completo.To avoid ambiguity about which resource you're referencing, you can provide a fully qualified resource identifier.

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

Al construir una referencia completa a un recurso, el orden para combinar los segmentos a partir del tipo y el nombre no es simplemente una concatenación de los dos.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. En su lugar, después del espacio de nombres, use una secuencia de pares tipo/nombre de menos a más específico:Instead, after the namespace, use a sequence of type/name pairs from least specific to most specific:

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

Por ejemplo:For example:

Microsoft.Compute/virtualMachines/myVM/extensions/myExt es correcto Microsoft.Compute/virtualMachines/extensions/myVM/myExt no es correctoMicrosoft.Compute/virtualMachines/myVM/extensions/myExt is correct Microsoft.Compute/virtualMachines/extensions/myVM/myExt is not correct

Para simplificar la creación de cualquier identificador de recurso, use las funciones resourceId() descritas en este documento, en lugar de la función concat().To simplify the creation of any resource ID, use the resourceId() functions described in this document instead of the concat() function.

Obtención de una identidad administradaGet managed identity

Las identidades administradas para los recursos de Azure son tipos de recursos de extensión que se crean implícitamente para algunos recursos.Managed identities for Azure resources are extension resource types that are created implicitly for some resources. Dado que la identidad administrada no se define explícitamente en la plantilla, debe hacer referencia al recurso al que se aplica la identidad.Because the managed identity isn't explicitly defined in the template, you must reference the resource that the identity is applied to. Utilice Full para obtener todas las propiedades, incluida la identidad creada implícitamente.Use Full to get all of the properties, including the implicitly created identity.

El patrón es:The pattern is:

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

Por ejemplo, para obtener el identificador de la entidad de seguridad de una identidad administrada que se aplica a una máquina virtual, use:For example, to get the principal ID for a managed identity that is applied to a virtual machine, use:

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

O bien, para obtener el identificador de inquilino de una identidad administrada que se aplica a un conjunto de escalado de máquinas virtuales, use:Or, to get the tenant ID for a managed identity that is applied to a virtual machine scale set, use:

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

Ejemplo de referenciaReference example

En la plantilla de ejemplo siguiente se implementa un recurso y se hace referencia a ese recurso.The following example template deploys a resource, and references that resource.

{
  "$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": "2016-12-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'), '2016-12-01', 'Full')]"
      }
    }
}

El ejemplo anterior devuelve los dos objetos.The preceding example returns the two objects. El objeto de propiedades está en el formato siguiente: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
}

El objeto completo está en el formato siguiente: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"
}

En la plantilla de ejemplo siguiente se hace referencia a una cuenta de almacenamiento que no se implementa en esta plantilla.The following example template references a storage account that isn't deployed in this template. La cuenta de almacenamiento ya existe dentro de la misma suscripción.The storage account already exists within the same subscription.

{
  "$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')), '2018-07-01')]"
    }
  }
}

resourceGroupresourceGroup

resourceGroup()

Devuelve un objeto que representa el grupo de recursos actual.Returns an object that represents the current resource group.

Valor devueltoReturn value

El objeto devuelto está en el formato siguiente: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}"
  }
}

La propiedad managedBy solo se devuelve para los grupos de recursos que contienen recursos administrados por otro servicio.The managedBy property is returned only for resource groups that contain resources that are managed by another service. En los casos de Managed Applications, Databricks y AKS, el valor de la propiedad es el identificador del recurso que realiza la administración.For Managed Applications, Databricks, and AKS, the value of the property is the resource ID of the managing resource.

ObservacionesRemarks

La función resourceGroup() no se puede usar en una plantilla que está implementada en el nivel de suscripción.The resourceGroup() function can't be used in a template that is deployed at the subscription level. Solo puede usarse en las plantillas que se implementan en un grupo de recursos.It can only be used in templates that are deployed to a resource group. Puede usar la resourceGroup()función en una plantilla vinculada o anidada (con ámbito interno) que tenga como destino un grupo de recursos, incluso cuando la plantilla primaria se implementa en la suscripción.You can use the resourceGroup() function in a linked or nested template (with inner scope) that targets a resource group, even when the parent template is deployed to the subscription. En ese escenario, la plantilla vinculada o anidada se implementa en el nivel de grupo de recursos.In that scenario, the linked or nested template is deployed at the resource group level. Para más información sobre cómo establecer como destino un grupo de recursos en una implementación de nivel de suscripción, consulte Implementar recursos de Azure en más de una suscripción o un grupo de recursos.For more information about targeting a resource group in a subscription level deployment, see Deploy Azure resources to more than one subscription or resource group.

Un uso común de la función resourceGroup es crear recursos en la misma ubicación que el grupo de recursos.A common use of the resourceGroup function is to create resources in the same location as the resource group. En el ejemplo siguiente se utiliza la ubicación del grupo de recursos para un valor de parámetro predeterminado.The following example uses the resource group location for a default parameter value.

"parameters": {
  "location": {
    "type": "string",
    "defaultValue": "[resourceGroup().location]"
  }
}

También puede usar la función resourceGroup para aplicar etiquetas del grupo de recursos a un recurso.You can also use the resourceGroup function to apply tags from the resource group to a resource. Para más información, consulte Aplicación de etiquetas de un grupo de recursos.For more information, see Apply tags from resource group.

Al usar plantillas anidadas para implementar en varios grupos de recursos, puede especificar el ámbito para evaluar la función resourceGroup.When using nested templates to deploy to multiple resource groups, you can specify the scope for evaluating the resourceGroup function. Para más información, consulte Implementación de recursos de Azure en varias suscripciones y grupos de recursos.For more information, see Deploy Azure resources to more than one subscription or resource group.

Ejemplo de grupo de recursosResource group example

La plantilla de ejemplo siguiente devuelve las propiedades del grupo de recursos.The following example template returns the properties of the resource group.

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

El ejemplo anterior devuelve un objeto en el formato siguiente: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], ...)

Devuelve el identificador único de un recurso.Returns the unique identifier of a resource. Utilice esta función cuando el nombre del recurso sea ambiguo o no esté aprovisionado dentro de la misma plantilla.You use this function when the resource name is ambiguous or not provisioned within the same template. El formato del identificador devuelto varía en función de si la implementación se produce en el ámbito de un grupo de recursos, una suscripción, un grupo de administración o un inquilino.The format of the returned identifier varies based on whether the deployment happens at the scope of a resource group, subscription, management group, or tenant.

ParámetrosParameters

ParámetroParameter ObligatorioRequired TipoType DescripciónDescription
subscriptionIdsubscriptionId NoNo Cadena (en formato de GUID)string (In GUID format) El valor predeterminado es la suscripción actual.Default value is the current subscription. Especifique este valor cuando necesite recuperar un recurso en otra suscripción.Specify this value when you need to retrieve a resource in another subscription. Proporcione solo este valor al realizar la implementación en el ámbito de un grupo de recursos o suscripción.Only provide this value when deploying at the scope of a resource group or subscription.
resourceGroupNameresourceGroupName NoNo stringstring El valor predeterminado es el grupo de recursos actual.Default value is current resource group. Especifique este valor cuando necesite recuperar un recurso en otro grupo de recursos.Specify this value when you need to retrieve a resource in another resource group. Proporcione solo este valor al realizar la implementación en el ámbito de un grupo de recursos.Only provide this value when deploying at the scope of a resource group.
resourceTyperesourceType Yes stringstring Tipo de recurso, incluido el espacio de nombres del proveedor de recursos.Type of resource including resource provider namespace.
resourceName1resourceName1 Yes stringstring Nombre del recurso.Name of resource.
resourceName2resourceName2 NoNo stringstring Segmento con el nombre del siguiente segmento, si es necesario.Next resource name segment, if needed.

Siga agregando nombres de recursos como parámetros cuando el tipo de recurso incluya más segmentos.Continue adding resource names as parameters when the resource type includes more segments.

Valor devueltoReturn value

Cuando la plantilla se implementa en el ámbito de un grupo de recursos, el identificador de recurso se devuelve en el formato siguiente:When the template is deployed at the scope of a resource group, the resource ID is returned in the following format:

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

Puede usar la función resourceId para otros ámbitos de implementación, pero cambia el formato del id.You can use the resourceId function for other deployment scopes, but the format of the ID changes.

Si usa resourceId durante la implementación en una suscripción, el id. de recurso se devuelve en el formato siguiente:If you use resourceId while deploying to a subscription, the resource ID is returned in the following format:

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

Si usa resourceId durante la implementación en un grupo de administración o inquilino, el id. de recurso se devuelve en el formato siguiente:If you use resourceId while deploying to a management group or tenant, the resource ID is returned in the following format:

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

Para evitar confusiones, no se recomienda usar resourceId al trabajar con recursos implementados en la suscripción, el grupo de administración o el inquilino.To avoid confusion, we recommend that you not use resourceId when working with resources deployed to the subscription, management group, or tenant. En su lugar, use la función de id. que se diseñó para el ámbito.Instead, use the ID function that is designed for the scope.

En el caso de los recursos del nivel de suscripción, use la función subscriptionResourceId().For subscription-level resources, use the subscriptionResourceId function.

En el caso de los recursos del nivel de grupo de administración, use la función extensionResourceId para hacer referencia a un recurso que se implementa como extensión de un grupo de administración.For management group-level resources, use the extensionResourceId function to reference a resource that is implemented as an extension of a management group. Por ejemplo, las definiciones de directivas personalizadas que se implementan en un grupo de administración son extensiones del grupo de administración.For example, custom policy definitions that are deployed to a management group are extensions of the management group. Use la función tenantResourceId para hacer referencia a los recursos que se implementan en el inquilino, pero están disponibles en el grupo de administración.Use the tenantResourceId function to reference resources that are deployed to the tenant but available in your management group. Por ejemplo, las definiciones de directivas integradas se implementan como recursos de nivel de inquilino.For example, built-in policy definitions are implemented as tenant level resources.

En el caso de los recursos de nivel de inquilino, use la función tenantResourceId.For tenant-level resources, use the tenantResourceId function. Use tenantResourceId para las definiciones de directiva integradas, ya que se implementan en el nivel de inquilino.Use tenantResourceId for built-in policy definitions because they are implemented at the tenant level.

ObservacionesRemarks

El número de parámetros que proporcione varía en función de si el recurso es primario o secundario, y de si está en la misma suscripción o grupo de recursos.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.

Para obtener el Id. de un recurso primario de la misma suscripción y grupo de recursos, proporcione el tipo y el nombre del recurso.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')]"

Para obtener el Id. de un recurso secundario, preste atención al número de segmentos en el tipo de recurso.To get the resource ID for a child resource, pay attention to the number of segments in the resource type. Proporcione un nombre de recurso para cada segmento del tipo de recurso.Provide a resource name for each segment of the resource type. El nombre del segmento corresponde al recurso que existe para esa parte de la jerarquía.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')]"

Para obtener el Id. de un recurso de la misma suscripción en un grupo de recursos distinto, proporcione el nombre del grupo de recursos.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')]"

Para obtener el Id. de un recurso con una suscripción y grupo de recursos distintos, proporcione el Id. de suscripción y el nombre del grupo de recursos.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')]"

A menudo, necesitará utilizar esta función cuando se usa una cuenta de almacenamiento o red virtual en un grupo de recursos alternativo.Often, you need to use this function when using a storage account or virtual network in an alternate resource group. En el ejemplo siguiente se muestra cómo un recurso de un grupo de recursos externos se puede utilizar fácilmente:The following example shows how a resource from an external resource group can easily be used:

{
  "$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": "2015-05-01-preview",
      "name": "[parameters('nicName')]",
      "location": "[parameters('location')]",
      "properties": {
        "ipConfigurations": [
          {
            "name": "ipconfig1",
            "properties": {
              "privateIPAllocationMethod": "Dynamic",
              "subnet": {
                "id": "[variables('subnet1Ref')]"
              }
            }
          }
        ]
      }
    }
  ]
}

Ejemplo de identificador de recursosResource ID example

En la plantilla de ejemplo siguiente se devuelve el identificador de recursos de la cuenta de almacenamiento en el grupo de recursos:The following example template returns the resource ID for a storage account in the resource group:

{
  "$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')]"
    }
  }
}

La salida del ejemplo anterior con el valor predeterminado es:The output from the preceding example with the default values is:

NombreName TipoType ValueValue
sameRGOutputsameRGOutput StringString /subscriptions/{current-sub-id}/resourceGroups/examplegroup/providers/Microsoft.Storage/storageAccounts/examplestorage/subscriptions/{current-sub-id}/resourceGroups/examplegroup/providers/Microsoft.Storage/storageAccounts/examplestorage
differentRGOutputdifferentRGOutput StringString /subscriptions/{current-sub-id}/resourceGroups/otherResourceGroup/providers/Microsoft.Storage/storageAccounts/examplestorage/subscriptions/{current-sub-id}/resourceGroups/otherResourceGroup/providers/Microsoft.Storage/storageAccounts/examplestorage
differentSubOutputdifferentSubOutput StringString /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 StringString /subscriptions/{current-sub-id}/resourceGroups/examplegroup/providers/Microsoft.SQL/servers/serverName/databases/databaseName/subscriptions/{current-sub-id}/resourceGroups/examplegroup/providers/Microsoft.SQL/servers/serverName/databases/databaseName

subscriptionsubscription

subscription()

Devuelve detalles sobre la suscripción para la implementación actual.Returns details about the subscription for the current deployment.

Valor devueltoReturn value

La función devuelve el siguiente formato:The function returns the following format:

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

ObservacionesRemarks

Al usar plantillas anidadas para implementar en varias suscripciones, puede especificar el ámbito para evaluar la función de suscripción.When using nested templates to deploy to multiple subscriptions, you can specify the scope for evaluating the subscription function. Para más información, consulte Implementación de recursos de Azure en varias suscripciones y grupos de recursos.For more information, see Deploy Azure resources to more than one subscription or resource group.

Ejemplo de suscripciónSubscription example

En la plantilla de ejemplo siguiente se muestra la función de suscripción a la que se llama en la sección de salidas.The following example template shows the subscription function called in the outputs section.

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

subscriptionResourceIdsubscriptionResourceId

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

Devuelve el identificador único de un recurso implementado en el nivel de suscripción.Returns the unique identifier for a resource deployed at the subscription level.

ParámetrosParameters

ParámetroParameter ObligatorioRequired TipoType DescripciónDescription
subscriptionIdsubscriptionId NoNo Cadena (en formato de GUID)string (in GUID format) El valor predeterminado es la suscripción actual.Default value is the current subscription. Especifique este valor cuando necesite recuperar un recurso en otra suscripción.Specify this value when you need to retrieve a resource in another subscription.
resourceTyperesourceType Yes stringstring Tipo de recurso, incluido el espacio de nombres del proveedor de recursos.Type of resource including resource provider namespace.
resourceName1resourceName1 Yes stringstring Nombre del recurso.Name of resource.
resourceName2resourceName2 NoNo stringstring Segmento con el nombre del siguiente segmento, si es necesario.Next resource name segment, if needed.

Siga agregando nombres de recursos como parámetros cuando el tipo de recurso incluya más segmentos.Continue adding resource names as parameters when the resource type includes more segments.

Valor devueltoReturn value

El identificador se devuelve con el formato siguiente:The identifier is returned in the following format:

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

ObservacionesRemarks

Utilice esta función para obtener el identificador de recurso de los recursos que se implementan en la suscripción en lugar de en un grupo de recursos.You use this function to get the resource ID for resources that are deployed to the subscription rather than a resource group. El identificador devuelto difiere del valor devuelto por la función resourceId en que no incluye un valor de grupo de recursos.The returned ID differs from the value returned by the resourceId function by not including a resource group value.

Ejemplo de subscriptionResourceIdsubscriptionResourceID example

La siguiente plantilla asigna un rol integrado.The following template assigns a built-in role. Puede implementarlo en un grupo de recursos o en una suscripción.You can deploy it to either a resource group or subscription. Usa la función subscriptionResourceId para obtener el id. de recurso para recursos integrados.It uses the subscriptionResourceId function to get the resource ID for built-in roles.

{
  "$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": "2018-09-01-preview",
      "name": "[parameters('roleNameGuid')]",
      "properties": {
        "roleDefinitionId": "[variables(parameters('builtInRoleType'))]",
        "principalId": "[parameters('principalId')]"
      }
    }
  ]
}

tenantResourceIdtenantResourceId

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

Devuelve el identificador único de un recurso implementado en el nivel de inquilino.Returns the unique identifier for a resource deployed at the tenant level.

ParámetrosParameters

ParámetroParameter ObligatorioRequired TipoType DescripciónDescription
resourceTyperesourceType Yes stringstring Tipo de recurso, incluido el espacio de nombres del proveedor de recursos.Type of resource including resource provider namespace.
resourceName1resourceName1 Yes stringstring Nombre del recurso.Name of resource.
resourceName2resourceName2 NoNo stringstring Segmento con el nombre del siguiente segmento, si es necesario.Next resource name segment, if needed.

Siga agregando nombres de recursos como parámetros cuando el tipo de recurso incluya más segmentos.Continue adding resource names as parameters when the resource type includes more segments.

Valor devueltoReturn value

El identificador se devuelve con el formato siguiente:The identifier is returned in the following format:

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

ObservacionesRemarks

Esta función se usa para obtener el identificador de recurso de un recurso que se implementa en el inquilino.You use this function to get the resource ID for a resource that is deployed to the tenant. El identificador devuelto difiere de los valores devueltos por otras funciones de identificador de recurso en que no incluye los valores de un grupo de recursos o una suscripción.The returned ID differs from the values returned by other resource ID functions by not including resource group or subscription values.

Ejemplo de tenantResourceIdtenantResourceId example

Las definiciones de directivas integradas son recursos del nivel de inquilino.Built-in policy definitions are tenant level resources. Para implementar una asignación de directiva que hace referencia a una definición de directiva integrada, use la función tenantResourceId.To deploy a policy assignment that references a built-in policy definition, use the tenantResourceId function.

{
  "$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": "2019-09-01",
      "properties": {
        "scope": "[subscriptionResourceId('Microsoft.Resources/resourceGroups', resourceGroup().name)]",
        "policyDefinitionId": "[tenantResourceId('Microsoft.Authorization/policyDefinitions', parameters('policyDefinitionID'))]"
      }
    }
  ]
}

Pasos siguientesNext steps