Fonctions de ressource pour les modèles ARMResource functions for ARM templates

Resource Manager fournit les fonctions suivantes pour obtenir des valeurs de ressource dans votre modèle Azure Resource Manager (ARM) :Resource Manager provides the following functions for getting resource values in your Azure Resource Manager (ARM) template:

Pour obtenir des valeurs de paramètres, de variables ou du déploiement actuel, consultez Fonctions de valeur de déploiement.To get values from parameters, variables, or the current deployment, see Deployment value functions.

extensionResourceIdextensionResourceId

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

Retourne l’ID d’une ressource d’extension, un type de ressource qui s’applique à une autre ressource pour y ajouter des fonctionnalités.Returns the resource ID for an extension resource, which is a resource type that is applied to another resource to add to its capabilities.

ParamètresParameters

ParamètreParameter ObligatoireRequired TypeType DescriptionDescription
resourceIdresourceId OuiYes stringstring ID de la ressource à laquelle s’applique la ressource d’extension.The resource ID for the resource that the extension resource is applied to.
resourceTyperesourceType OuiYes stringstring Type de ressource, y compris l'espace de noms du fournisseur de ressources.Type of resource including resource provider namespace.
nom_ressource1resourceName1 OuiYes stringstring Nom de la ressource.Name of resource.
nom_ressource2resourceName2 NonNo stringstring Segment de nom de ressource suivant si nécessaire.Next resource name segment, if needed.

Continuez à ajouter des noms de ressource en paramètres lorsque le type de ressource contient plus de segments.Continue adding resource names as parameters when the resource type includes more segments.

Valeur retournéeReturn value

Le format de base de l’ID de ressource retourné par cette fonction est le suivant :The basic format of the resource ID returned by this function is:

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

Le segment d’étendue varie en fonction de la ressource étendue.The scope segment varies by the resource being extended.

Lorsque la ressource d’extension est appliquée à une ressource, l’ID de la ressource est retourné au format suivant :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}

Lorsque la ressource d’extension est appliquée à un groupe de ressources, le format est le suivant :When the extension resource is applied to a resource group, the format is:

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

Lorsque la ressource d’extension est appliquée à un abonnement, le format est le suivant :When the extension resource is applied to a subscription, the format is:

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

Lorsque la ressource d’extension est appliquée à un groupe d’administration, le format est le suivant :When the extension resource is applied to a management group, the format is:

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

Exemple extensionResourceIdextensionResourceId example

L’exemple suivant retourne l’ID de la ressource pour un verrou de groupe de ressources.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'))]"
        }
    }
}

Une définition de stratégie personnalisée déployée sur un groupe d’administration est implémentée en tant que ressource d’extension.A custom policy definition deployed to a management group is implemented as an extension resource. Pour créer et affecter une stratégie, déployez le modèle suivant dans un groupe d’administration.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'))]"
      }
    }
  ]
}

Les définitions de stratégie intégrées sont des ressources de niveau locataire.Built-in policy definitions are tenant level resources. Pour obtenir un exemple de déploiement d’une définition de stratégie intégrée, consultez tenantResourceId.For an example of deploying a built-in policy definition, see tenantResourceId.

list*list*

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

La syntaxe de cette fonction varie en fonction du nom des opérations de liste.The syntax for this function varies by name of the list operations. Chaque implémentation retourne des valeurs pour le type de ressource qui prend en charge une opération de liste.Each implementation returns values for the resource type that supports a list operation. Le nom de l’opération doit commencer par list.The operation name must start with list. Voici quelques utilisations courantes : listKeys, listKeyValue et listSecrets.Some common usages are listKeys, listKeyValue, and listSecrets.

ParamètresParameters

ParamètreParameter ObligatoireRequired TypeType DescriptionDescription
nom_ressource ou identificateur_ressourceresourceName or resourceIdentifier OuiYes stringstring Identificateur unique pour la ressource.Unique identifier for the resource.
apiVersionapiVersion OuiYes stringstring Version d'API de l'état d'exécution des ressources.API version of resource runtime state. En règle générale, au format, aaaa-mm-jj.Typically, in the format, yyyy-mm-dd.
functionValuesfunctionValues NonNo objectobject Objet qui contient les valeurs de la fonction.An object that has values for the function. Fournissez uniquement cet objet pour les fonctions qui prennent en charge la réception d’un objet avec des valeurs de paramètre, comme listAccountSas sur un compte de stockage.Only provide this object for functions that support receiving an object with parameter values, such as listAccountSas on a storage account. Un exemple de transmission de valeurs de fonction est illustré dans cet article.An example of passing function values is shown in this article.

Utilisations validesValid uses

Les fonctions de liste peuvent être utilisés dans les propriétés d’une définition de ressource.The list functions can be used in the properties of a resource definition. N’utilisez pas de fonction de liste qui expose des informations sensibles dans la section de sortie d’un modèle.Don't use a list function that exposes sensitive information in the outputs section of a template. Les valeurs de sortie sont stockées dans l’historique de déploiement et peuvent être récupérées par un utilisateur malveillant.Output values are stored in the deployment history and could be retrieved by a malicious user.

Quand elles sont utilisées avec une itération de propriété, vous pouvez utiliser les fonctions list pour input, car l’expression est affectée à la propriété de ressource.When used with property iteration, you can use the list functions for input because the expression is assigned to the resource property. Vous ne pouvez pas les utiliser avec count, car le nombre doit être déterminé avant que la fonction list ne soit résolue.You can't use them with count because the count must be determined before the list function is resolved.

ImplémentationsImplementations

Les utilisations possibles de list* sont indiquées dans le tableau suivant.The possible uses of list* are shown in the following table.

Type de ressourceResource type Nom de la fonctionFunction 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

Pour déterminer les types de ressources qui ont une opération de liste, utilisez les options suivantes :To determine which resource types have a list operation, you have the following options:

  • Affichez les opérations d’API REST pour un fournisseur de ressources et recherchez les opérations de liste.View the REST API operations for a resource provider, and look for list operations. Par exemple, les comptes de stockage présentent l’opération listKeys.For example, storage accounts have the listKeys operation.

  • Utilisez la cmdlet PowerShell Get-AzureRmProviderOperation.Use the Get-AzProviderOperation PowerShell cmdlet. L’exemple ci-dessous obtient toutes les opérations de liste pour les comptes de stockage :The following example gets all list operations for storage accounts:

    Get-AzProviderOperation -OperationSearchString "Microsoft.Storage/*" | where {$_.Operation -like "*list*"} | FT Operation
    
  • Utilisez la commande Azure CLI suivante pour filtrer uniquement les opérations de liste :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')]"
    

Valeur retournéeReturn value

L’objet retourné varie selon la fonction de liste que vous utilisez.The returned object varies by the list function you use. Par exemple, la fonction listKeys pour un compte de stockage retourne le format suivant :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}"
    }
  ]
}

D’autres fonctions de liste ont différents formats de retour.Other list functions have different return formats. Pour afficher le format d’une fonction, incluez-le dans la section des sorties comme indiqué dans l’exemple de modèle.To see the format of a function, include it in the outputs section as shown in the example template.

NotesRemarks

Spécifiez la ressource en utilisant le nom de la ressource ou la fonction resourceId.Specify the resource by using either the resource name or the resourceId function. Lorsque vous utilisez une fonction de liste dans le modèle qui déploie la ressource référencée, utilisez le nom de la ressource.When using a list function in the same template that deploys the referenced resource, use the resource name.

Si vous utilisez une fonction list dans une ressource qui est déployée conditionnellement, la fonction est évaluée même si la ressource n’est pas déployée.If you use a list function in a resource that is conditionally deployed, the function is evaluated even if the resource isn't deployed. Vous obtenez une erreur si la fonction list fait référence à une ressource qui n’existe pas.You get an error if the list function refers to a resource that doesn't exist. Utilisez la fonction if pour vous assurer que la fonction est évaluée lors du déploiement de la ressource.Use the if function to make sure the function is only evaluated when the resource is being deployed. Consultez la fonction if pour un exemple de modèle qui utilise « if » et « list » avec une ressource déployée de manière conditionnelle.See the if function for a sample template that uses if and list with a conditionally deployed resource.

Exemple de listeList example

L’exemple suivant utilise listKeys lors de la définition d’une valeur pour les scripts de déploiement.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]"
}

L’exemple suivant montre une fonction de liste qui accepte un paramètre.The next example shows a list function that takes a parameter. Dans ce cas, la fonction est toujours listAccountSas.In this case, the function is listAccountSas. Passez un objet pour l’heure d’expiration.Pass an object for the expiry time. L’heure d’expiration doit être dans le futur.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])

Détermine si un type de ressource prend en charge les zones pour une région.Determines whether a resource type supports zones for a region.

ParamètresParameters

ParamètreParameter ObligatoireRequired TypeType DescriptionDescription
espacedenoms_fournisseurproviderNamespace OuiYes stringstring Espace de noms du fournisseur du type de ressource pour lequel la prise en charge des zones doit être vérifiée.The resource provider namespace for the resource type to check for zone support.
resourceTyperesourceType OuiYes stringstring Type de ressource pour lequel la prise en charge des zones doit être vérifiée.The resource type to check for zone support.
locationlocation OuiYes stringstring Région pour laquelle la prise en charge des zones doit être vérifiée.The region to check for zone support.
numberOfZonesnumberOfZones NonNo entierinteger Nombre de zones logiques à retourner.The number of logical zones to return. La valeur par défaut est 1.The default is 1. Le nombre doit être un entier positif compris entre 1 et 3.The number must a positive integer from 1 to 3. Utilisez 1 pour les ressources à une seule zone.Use 1 for single-zoned resources. Pour les ressources multizones, la valeur doit être inférieure ou égale au nombre de zones prises en charge.For multi-zoned resources, the value must be less than or equal to the number of supported zones.
offsetoffset NonNo entierinteger Décalage par rapport à la zone logique de départ.The offset from the starting logical zone. La fonction retourne une erreur si le décalage plus le nombre de zones (numberOfZones) dépasse le nombre de zones prises en charge.The function returns an error if offset plus numberOfZones exceeds the number of supported zones.

Valeur retournéeReturn value

Tableau avec les zones prises en charge.An array with the supported zones. Quand les valeurs par défaut pour offset et numberOfZones sont utilisées, un type de ressource et une région qui prend en charge les zones retournent le tableau suivant :When using the default values for offset and numberOfZones, a resource type and region that supports zones returns the following array:

[
    "1"
]

Quand le paramètre numberOfZones est défini sur 3, il retourne :When the numberOfZones parameter is set to 3, it returns:

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

Quand le type de ressource ou la région ne prend pas en charge les zones, un tableau vide est retourné.When the resource type or region doesn't support zones, an empty array is returned.

[
]

Exemple de pickZonespickZones example

Le modèle suivant présente trois résultats pour l’utilisation de la fonction 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 sortie des exemples précédents retourne trois tableaux.The output from the preceding examples returns three arrays.

NomName TypeType ValeurValue
supportedsupported tableauarray [ "1" ][ "1" ]
notSupportedRegionnotSupportedRegion tableauarray [][]
notSupportedTypenotSupportedType tableauarray [][]

Vous pouvez vous servir de la réponse de pickZones pour déterminer s’il convient de fournir une valeur null pour des zones ou affecter des machines virtuelles à différentes zones.You can use the response from pickZones to determine whether to provide null for zones or assign virtual machines to different zones. L’exemple suivant définit une valeur pour la zone en fonction de la disponibilité des zones.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'))]"
},

fournisseursproviders

providers(providerNamespace, [resourceType])

Renvoie des informations sur un fournisseur de ressources et les types de ressources qu’il prend en charge.Returns information about a resource provider and its supported resource types. Si vous ne fournissez pas un type de ressource, la fonction retourne tous les types pris en charge pour le fournisseur de ressources.If you don't provide a resource type, the function returns all the supported types for the resource provider.

ParamètresParameters

ParamètreParameter ObligatoireRequired TypeType DescriptionDescription
espacedenoms_fournisseurproviderNamespace OuiYes stringstring Espace de noms du fournisseur.Namespace of the provider
resourceTyperesourceType NonNo stringstring Type de ressource dans l'espace de noms spécifié.The type of resource within the specified namespace.

Valeur retournéeReturn value

Chaque type pris en charge est renvoyé au format suivant :Each supported type is returned in the following format:

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

Le classement du tableau des valeurs retournées n’est pas garanti.Array ordering of the returned values isn't guaranteed.

Exemple de fournisseursProviders example

L’exemple de modèle suivant montre comment utiliser la fonction provider :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": {
            "value": "[providers(parameters('providerNamespace'), parameters('resourceType'))]",
            "type" : "object"
        }
    }
}

Pour le fournisseur de ressources Microsoft.Web et le type de ressource sites, l’exemple précédent retourne un objet au format suivant :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'])

Renvoie un objet représentant l’état d’exécution d’une ressource.Returns an object representing a resource's runtime state.

ParamètresParameters

ParamètreParameter ObligatoireRequired TypeType DescriptionDescription
nom_ressource ou identificateur_ressourceresourceName or resourceIdentifier OuiYes stringstring Nom ou identificateur unique d’une ressource.Name or unique identifier of a resource. Lorsque vous référencez une ressource dans le modèle actuel, indiquez uniquement le nom de la ressource en tant que paramètre.When referencing a resource in the current template, provide only the resource name as a parameter. Lorsque vous référencez une ressource précédemment déployée, ou lorsque le nom de la ressource est ambigu, fournissez l’ID de la ressource.When referencing a previously deployed resource or when the name of the resource is ambiguous, provide the resource ID.
apiVersionapiVersion NonNo stringstring Version d’API de la ressource spécifiée.API version of the specified resource. Ce paramètre est obligatoire lorsque la ressource n’est pas approvisionnée dans le même modèle.This parameter is required when the resource isn't provisioned within same template. En règle générale, au format, aaaa-mm-jj.Typically, in the format, yyyy-mm-dd. Pour obtenir les versions d’API valides pour votre ressource, consultez Référence de modèle.For valid API versions for your resource, see template reference.
'Full''Full' NonNo stringstring Valeur qui spécifie si l’objet de ressource complet doit être retourné.Value that specifies whether to return the full resource object. Si vous ne spécifiez pas 'Full', seul l’objet properties de la ressource est retourné.If you don't specify 'Full', only the properties object of the resource is returned. L’objet complet comprend des valeurs telles que l’ID de ressource et l’emplacement.The full object includes values such as the resource ID and location.

Valeur retournéeReturn value

Chaque type de ressource retourne des propriétés différentes pour la fonction de référence.Every resource type returns different properties for the reference function. La fonction ne retourne pas un format prédéfini unique.The function doesn't return a single, predefined format. En outre, la valeur retournée diffère selon la valeur de l’argument 'Full'.Also, the returned value differs based on the value of the 'Full' argument. Pour afficher les propriétés d’un type de ressource, renvoyez l’objet dans la section des sorties comme indiqué dans l’exemple.To see the properties for a resource type, return the object in the outputs section as shown in the example.

NotesRemarks

La fonction de référence récupère l’état d’exécution d’une ressource déployée précédemment ou déployée dans le modèle actuel.The reference function retrieves the runtime state of either a previously deployed resource or a resource deployed in the current template. Cet article montre des exemples pour les deux scénarios.This article shows examples for both scenarios.

En règle générale, vous utilisez la fonction de référence pour renvoyer une valeur particulière d’un objet, telle que l’URI du point de terminaison d’objet blob ou le nom de domaine complet.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(resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName'))).primaryEndpoints.blob]",
        "type" : "string"
    },
    "FQDN": {
        "value": "[reference(resourceId('Microsoft.Network/publicIPAddresses', parameters('ipAddressName'))).dnsSettings.fqdn]",
        "type" : "string"
    }
}

Utilisez 'Full' quand vous avez besoin de valeurs de ressource qui ne font pas partie du schéma de propriétés.Use 'Full' when you need resource values that aren't part of the properties schema. Par exemple, pour définir des stratégies d’accès à des coffres de clés, obtenez les propriétés d’identité d’une machine virtuelle.For example, to set key vault access policies, get the identity properties for a virtual machine.

{
  "type": "Microsoft.KeyVault/vaults",
  "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"
          ]
        }
      }
    ],
    ...

Utilisations validesValid uses

La fonction de référence ne peut être utilisée que dans les propriétés d’une définition de ressource et dans la section de sortie d’un modèle ou d’un déploiement.The reference function can only be used in the properties of a resource definition and the outputs section of a template or deployment. Lorsqu’elle est utilisée avec une itération de propriété, vous pouvez utiliser la fonction de référence pour input, car l’expression est affectée à la propriété de ressource.When used with property iteration, you can use the reference function for input because the expression is assigned to the resource property.

Vous ne pouvez pas utiliser la fonction de référence pour définir la valeur de la propriété count dans une boucle de copie.You can't use the reference function to set the value of the count property in a copy loop. Vous pouvez l'utiliser pour définir d’autres propriétés de la boucle.You can use to set other properties in the loop. La référence est bloquée pour la propriété de nombre car cette propriété doit être déterminée préalablement à la résolution de la fonction de référence.Reference is blocked for the count property because that property must be determined before the reference function is resolved.

Pour utiliser la fonction de référence ou n'importe quelle fonction list* dans la section outputs d'un modèle imbriqué, vous devez définir les expressionEvaluationOptions de manière à utiliser l'évaluation avec portée interne, ou utiliser un modèle lié plutôt qu'un modèle imbriqué.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 vous utilisez une fonction reference dans une ressource qui est déployée conditionnellement, la fonction est évaluée même si la ressource n’est pas déployée.If you use the reference function in a resource that is conditionally deployed, the function is evaluated even if the resource isn't deployed. Vous obtenez une erreur si la fonction reference fait référence à une ressource qui n’existe pas.You get an error if the reference function refers to a resource that doesn't exist. Utilisez la fonction if pour vous assurer que la fonction est évaluée lors du déploiement de la ressource.Use the if function to make sure the function is only evaluated when the resource is being deployed. Consultez la fonction if pour un exemple de modèle qui utilise « if » et « reference » avec une ressource déployée de manière conditionnelle.See the if function for a sample template that uses if and reference with a conditionally deployed resource.

Dépendance impliciteImplicit dependency

En utilisant la fonction reference, vous déclarez de manière implicite qu’une ressource dépend d’une autre ressource si la ressource référencée est configurée dans le même modèle et vous désignez cette ressource par son nom (pas par son ID).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). Vous n’avez pas besoin d’utiliser également la propriété dependsOn.You don't need to also use the dependsOn property. La fonction n’est pas évaluée tant que le déploiement de la ressource référencée n’est pas terminé.The function isn't evaluated until the referenced resource has completed deployment.

Nom ou identificateur de la ressourceResource name or identifier

Lorsque vous faites référence à une ressource déployée dans le même modèle, indiquez le nom de la ressource.When referencing a resource that is deployed in the same template, provide the name of the resource.

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

Lorsque vous faites référence à une ressource qui n’est pas déployée dans le même modèle, fournissez l’ID de ressource et 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')]"

Pour éviter toute ambiguïté quant à la ressource à laquelle vous faites référence, vous pouvez fournir un identificateur de ressource complet.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')))]"

Quand vous créez une référence complète à une ressource, l’ordre utilisé pour combiner les segments de type et de nom n’est pas une simple concaténation des deux.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. Au lieu de cela, utilisez après l’espace de noms une séquence de paires type/nom du moins spécifique au plus spécifique :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}]

Par exemple :For example:

Microsoft.Compute/virtualMachines/myVM/extensions/myExt est correct Microsoft.Compute/virtualMachines/extensions/myVM/myExt n’est pas correctMicrosoft.Compute/virtualMachines/myVM/extensions/myExt is correct Microsoft.Compute/virtualMachines/extensions/myVM/myExt is not correct

Pour simplifier la création d’un ID de ressource, utilisez les fonctions resourceId() décrites dans ce document au lieu de la fonction concat().To simplify the creation of any resource ID, use the resourceId() functions described in this document instead of the concat() function.

Obtenir une identité managéeGet managed identity

Les identités managées pour ressources Azure sont des types de ressources d’extension créés implicitement pour certaines ressources.Managed identities for Azure resources are extension resource types that are created implicitly for some resources. L’identité managée n’étant pas définie explicitement dans le modèle, vous devez référencer la ressource à laquelle elle est appliquée.Because the managed identity isn't explicitly defined in the template, you must reference the resource that the identity is applied to. Utilisez Full pour obtenir toutes les propriétés, y compris l’identité créée implicitement.Use Full to get all of the properties, including the implicitly created identity.

Le modèle est :The pattern is:

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

Par exemple, pour obtenir l'ID de principal d'une identité managée appliquée à une machine virtuelle, utilisez :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]",

Ou, pour obtenir l'ID de locataire d'une identité managée appliquée à un groupe de machines virtuelles identiques, utilisez :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]"

Exemple de référenceReference example

L’exemple de modèle suivant déploie, puis référence une ressource.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": [
    {
      "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')]"
      }
    }
}

L’exemple précédent retourne les deux objets.The preceding example returns the two objects. L’objet de propriétés retourné présente le format suivant :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
}

L’objet complet retourné présente le format suivant :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"
}

L’exemple de modèle suivant référence un compte de stockage qui n’est pas déployé dans ce modèle.The following example template references a storage account that isn't deployed in this template. Le compte de stockage existe déjà dans le même abonnement.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": {
            "value": "[reference(resourceId(parameters('storageResourceGroup'), 'Microsoft.Storage/storageAccounts', parameters('storageAccountName')), '2018-07-01')]",
            "type": "object"
        }
    }
}

resourceGroupresourceGroup

resourceGroup()

Renvoie un objet qui représente le groupe de ressources actuel.Returns an object that represents the current resource group.

Valeur retournéeReturn value

L’objet renvoyé présente le format suivant :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 propriété ManagedBy est retournée uniquement pour les groupes de ressources qui contiennent des ressources gérées par un autre service.The managedBy property is returned only for resource groups that contain resources that are managed by another service. Pour Managed Applications, Databricks et AKS, la valeur de la propriété est l’ID de ressource de la ressource de gestion.For Managed Applications, Databricks, and AKS, the value of the property is the resource ID of the managing resource.

NotesRemarks

La fonction resourceGroup() ne peut pas être utilisée dans un modèle qui est déployé au niveau abonnement.The resourceGroup() function can't be used in a template that is deployed at the subscription level. Elle n’est utilisable que dans les modèles déployés sur un groupe de ressources.It can only be used in templates that are deployed to a resource group. Vous pouvez utiliser la fonction resourceGroup() dans un modèle lié ou imbriqué (avec portée interne) qui cible un groupe de ressources, même lorsque le modèle parent est déployé dans l’abonnement.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. Dans ce scénario, le modèle lié ou imbriqué est déployé au niveau du groupe de ressources.In that scenario, the linked or nested template is deployed at the resource group level. Pour plus d’informations sur le ciblage d’un groupe de ressources dans un déploiement au niveau de l’abonnement, consultez Déployer des ressources Azure sur plusieurs groupes de ressources et des abonnements.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.

Une utilisation courante de la fonction resourceGroup consiste à créer des ressources dans le même emplacement que le groupe de ressources.A common use of the resourceGroup function is to create resources in the same location as the resource group. L’exemple suivant utilise l’emplacement du groupe de ressources pour une valeur de paramètre par défaut.The following example uses the resource group location for a default parameter value.

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

Vous pouvez également utiliser la fonction resourceGroup pour appliquer des balises du groupe de ressources à une ressource.You can also use the resourceGroup function to apply tags from the resource group to a resource. Pour plus d’informations, voir Appliquer les balises d’un groupe de ressources.For more information, see Apply tags from resource group.

Quand vous utilisez des modèles imbriqués pour effectuer un déploiement sur plusieurs groupes de ressources, vous pouvez spécifier l’étendue de l’évaluation de la fonction resourceGroup.When using nested templates to deploy to multiple resource groups, you can specify the scope for evaluating the resourceGroup function. Pour plus d’informations, voir Déployer des ressources Azure sur plusieurs groupes de ressources et des abonnements.For more information, see Deploy Azure resources to more than one subscription or resource group.

Exemple de groupe de ressourcesResource group example

L’exemple de modèle suivant retourne les propriétés du groupe de ressources.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": {
            "value": "[resourceGroup()]",
            "type" : "object"
        }
    }
}

L’exemple précédent renvoie un objet dans le format suivant :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], ...)

Retourne l'identificateur unique d'une ressource.Returns the unique identifier of a resource. Vous utilisez cette fonction lorsque le nom de la ressource est ambigu ou non configuré dans le même modèle.You use this function when the resource name is ambiguous or not provisioned within the same template. Le format de l’identificateur retourné varie selon que le déploiement se produit à l’échelle d’un groupe de ressources, d’un abonnement, d’un groupe d’administration ou d’un locataire.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.

ParamètresParameters

ParamètreParameter ObligatoireRequired TypeType DescriptionDescription
subscriptionIdsubscriptionId NonNo string (au format GUID)string (In GUID format) La valeur par défaut est l’abonnement actuel.Default value is the current subscription. Spécifiez cette valeur lorsque vous devez récupérer une ressource se trouvant dans un autre abonnement.Specify this value when you need to retrieve a resource in another subscription. Fournissez cette valeur uniquement lors du déploiement à l’échelle d’un groupe de ressources ou d’un abonnement.Only provide this value when deploying at the scope of a resource group or subscription.
resourceGroupNameresourceGroupName NonNo stringstring La valeur par défaut est le groupe de ressources actuel.Default value is current resource group. Spécifiez cette valeur lorsque vous devez récupérer une ressource se trouvant dans un autre groupe de ressources.Specify this value when you need to retrieve a resource in another resource group. Fournissez cette valeur uniquement lors du déploiement à l’échelle d’un groupe de ressources.Only provide this value when deploying at the scope of a resource group.
resourceTyperesourceType OuiYes stringstring Type de ressource, y compris l'espace de noms du fournisseur de ressources.Type of resource including resource provider namespace.
nom_ressource1resourceName1 OuiYes stringstring Nom de la ressource.Name of resource.
nom_ressource2resourceName2 NonNo stringstring Segment de nom de ressource suivant si nécessaire.Next resource name segment, if needed.

Continuez à ajouter des noms de ressource en paramètres lorsque le type de ressource contient plus de segments.Continue adding resource names as parameters when the resource type includes more segments.

Valeur retournéeReturn value

Lorsque le modèle est déployé à l’échelle d’un groupe de ressources, l’ID de ressource est retourné au format suivant :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}

Vous pouvez utiliser la fonction resourceId pour d’autres étendues de déploiement, mais le format de l’ID change.You can use the resourceId function for other deployment scopes, but the format of the ID changes.

Si vous utilisez la fonction resourceId lors du déploiement sur un abonnement, l’ID de ressource est retourné au format suivant :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 vous utilisez la fonction resourceId lors du déploiement sur un client ou un groupe d’administration, l’ID de ressource est retourné au format suivant :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}

Pour éviter toute confusion, nous vous recommandons de ne pas utiliser la fonction resourceId lorsque vous travaillez avec des ressources déployées sur l’abonnement, le groupe d’administration ou le locataire.To avoid confusion, we recommend that you not use resourceId when working with resources deployed to the subscription, management group, or tenant. Utilisez plutôt la fonction ID conçue pour l’étendue.Instead, use the ID function that is designed for the scope.

Pour les ressources au niveau de l’abonnement, utilisez la fonction subscriptionResourceId.For subscription-level resources, use the subscriptionResourceId function.

Pour les ressources au niveau du groupe d’administration, utilisez la fonction extensionResourceId pour référencer une ressource qui est implémentée en tant qu’extension d’un groupe d’administration.For management group-level resources, use the extensionResourceId function to reference a resource that is implemented as an extension of a management group. Par exemple, des définitions de stratégie personnalisée déployées sur un groupe d’administration sont des extensions de celui-ci.For example, custom policy definitions that are deployed to a management group are extensions of the management group. Utilisez la fonction tenantResourceId pour référencer les ressources déployées sur le locataire, mais disponibles dans votre groupe d’administration.Use the tenantResourceId function to reference resources that are deployed to the tenant but available in your management group. Par exemple, les définitions de stratégie intégrées sont implémentées en tant que ressources au niveau locataire.For example, built-in policy definitions are implemented as tenant level resources.

Pour les ressources au niveau locataire, utilisez la fonction tenantResourceId.For tenant-level resources, use the tenantResourceId function. Utilisez la fonction tenantResourceId pour les définitions de stratégie intégrées, car elles sont implémentées au niveau locataire.Use tenantResourceId for built-in policy definitions because they are implemented at the tenant level.

NotesRemarks

Le nombre de paramètres que vous fournissez varie selon qu’il s'agit d’une ressource parent ou d’une ressource enfant et selon que la ressource fait partie du même abonnement ou du même groupe de ressources.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.

Pour obtenir l’ID de ressource d’une ressource parent se trouvant dans le même abonnement et le même groupe de ressources, indiquez le type et le nom de la ressource.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')]"

Pour obtenir l’ID de ressource d’une ressource enfant, faites attention au nombre de segments dans le type de ressource.To get the resource ID for a child resource, pay attention to the number of segments in the resource type. Indiquez un nom de ressource pour chaque segment du type de ressource.Provide a resource name for each segment of the resource type. Le nom du segment correspond à la ressource qui existe pour cette partie de la hiérarchie.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')]"

Pour obtenir l’ID de ressource d’une ressource se trouvant dans le même abonnement mais dans un groupe de ressources différent, indiquez le nom du groupe de ressources.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')]"

Pour obtenir l’ID de ressource d’une ressource se trouvant dans un abonnement et un groupe de ressources différents, indiquez l’ID d’abonnement et le nom du groupe de ressources.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')]"

Souvent, vous devez utiliser cette fonction lorsque vous utilisez un compte de stockage ou un réseau virtuel se trouvant dans un autre groupe de ressources.Often, you need to use this function when using a storage account or virtual network in an alternate resource group. L'exemple suivant montre comment une ressource d'un groupe de ressources externe peut être facilement utilisée :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": {
      "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')]"
                  }
              }
          }]
       }
  }]
}

Exemple d’ID de ressourceResource ID example

L’exemple de modèle suivant retourne l’ID de ressource pour un compte de stockage appartenant au groupe de ressources :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": {
            "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"
        }
    }
}

La sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :The output from the preceding example with the default values is:

NomName TypeType ValeurValue
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()

Retourne des détails concernant l’abonnement pour le déploiement actuel.Returns details about the subscription for the current deployment.

Valeur retournéeReturn value

La fonction retourne les informations au format suivant :The function returns the following format:

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

NotesRemarks

Quand vous utilisez des modèles imbriqués pour effectuer un déploiement sur plusieurs abonnements, vous pouvez spécifier l’étendue de l’évaluation de la fonction subscription.When using nested templates to deploy to multiple subscriptions, you can specify the scope for evaluating the subscription function. Pour plus d’informations, voir Déployer des ressources Azure sur plusieurs groupes de ressources et des abonnements.For more information, see Deploy Azure resources to more than one subscription or resource group.

Exemple d’abonnementSubscription example

L’exemple de modèle suivant montre la fonction subscription qui est appelée dans la section outputs.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], ...)

Retourne l’identificateur unique d’une ressource déployée au niveau de l’abonnement.Returns the unique identifier for a resource deployed at the subscription level.

ParamètresParameters

ParamètreParameter ObligatoireRequired TypeType DescriptionDescription
subscriptionIdsubscriptionId NonNo string (au format GUID)string (in GUID format) La valeur par défaut est l’abonnement actuel.Default value is the current subscription. Spécifiez cette valeur lorsque vous devez récupérer une ressource se trouvant dans un autre abonnement.Specify this value when you need to retrieve a resource in another subscription.
resourceTyperesourceType OuiYes stringstring Type de ressource, y compris l'espace de noms du fournisseur de ressources.Type of resource including resource provider namespace.
nom_ressource1resourceName1 OuiYes stringstring Nom de la ressource.Name of resource.
nom_ressource2resourceName2 NonNo stringstring Segment de nom de ressource suivant si nécessaire.Next resource name segment, if needed.

Continuez à ajouter des noms de ressource en paramètres lorsque le type de ressource contient plus de segments.Continue adding resource names as parameters when the resource type includes more segments.

Valeur retournéeReturn value

L'identificateur est retourné au format suivant :The identifier is returned in the following format:

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

NotesRemarks

Utilisez cette fonction pour récupérer l’ID des ressources déployées dans l’abonnement plutôt qu’un groupe de ressources.You use this function to get the resource ID for resources that are deployed to the subscription rather than a resource group. L’ID retourné diffère de la valeur retournée par la fonction resourceId en ce qu’il n’inclut pas de valeur de groupe de ressources.The returned ID differs from the value returned by the resourceId function by not including a resource group value.

Exemple subscriptionResourceIDsubscriptionResourceID example

Le modèle suivant attribue un rôle intégré.The following template assigns a built-in role. Vous pouvez le déployer soit sur un groupe de ressources, soit sur un abonnement.You can deploy it to either a resource group or subscription. Il utilise la fonction subscriptionResourceId pour récupérer l’ID de ressource pour les rôles intégrés.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], ...)

Retourne l’identificateur unique d’une ressource déployée au niveau du tenant.Returns the unique identifier for a resource deployed at the tenant level.

ParamètresParameters

ParamètreParameter ObligatoireRequired TypeType DescriptionDescription
resourceTyperesourceType OuiYes stringstring Type de ressource, y compris l'espace de noms du fournisseur de ressources.Type of resource including resource provider namespace.
nom_ressource1resourceName1 OuiYes stringstring Nom de la ressource.Name of resource.
nom_ressource2resourceName2 NonNo stringstring Segment de nom de ressource suivant si nécessaire.Next resource name segment, if needed.

Continuez à ajouter des noms de ressource en paramètres lorsque le type de ressource contient plus de segments.Continue adding resource names as parameters when the resource type includes more segments.

Valeur retournéeReturn value

L'identificateur est retourné au format suivant :The identifier is returned in the following format:

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

NotesRemarks

Cette fonction permet de récupérer l’ID d’une ressource déployée sur le tenant.You use this function to get the resource ID for a resource that is deployed to the tenant. L’ID retourné diffère des valeurs retournées par d’autres fonctions d’ID de ressource en ce qu’il n’inclut pas de valeurs de groupe de ressources ou d’abonnement.The returned ID differs from the values returned by other resource ID functions by not including resource group or subscription values.

Exemple tenantResourceIdtenantResourceId example

Les définitions de stratégie intégrées sont des ressources de niveau locataire.Built-in policy definitions are tenant level resources. Pour déployer une attribution de stratégie qui fait référence à une définition de stratégie intégrée, utilisez la fonction 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": {
    "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."
      }
    },
    "policyDefinitionID": {
      "type": "string",
      "defaultValue": "0a914e76-4921-4c19-b460-a2d36003525a",
      "metadata": {
        "description": "Specifies the ID of the policy definition or policy set definition being assigned."
      }
    }
  },
  "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'))]"
      }
    }
  ]
}

Étapes suivantesNext steps