Fonctions d’étendue pour les modèles ARM
Resource Manager fournit les fonctions suivantes pour obtenir des valeurs d’étendue de déploiement dans votre modèle Azure Resource Manager (modèle ARM) :
Pour obtenir des valeurs de paramètres, de variables ou du déploiement actuel, consultez Fonctions de valeur de déploiement.
Conseil
Nous recommandons Bicep, parce qu’il offre les mêmes fonctionnalités que les modèles ARM et que la syntaxe est plus facile d’utilisation. Pour en savoir plus, consultez les fonctions d’étendue.
managementGroup
managementGroup()
Retourne un objet avec les propriétés du groupe d’administration dans le déploiement actuel.
Dans Bicep, utilisez la fonction d’étendue managementGroup.
Remarques
managementGroup()
ne peut être utilisée que sur des déploiements de groupe d’administration. Elle retourne le groupe d’administration actuel pour l’opération de déploiement. Utilisez ce niveau pour obtenir des propriétés pour le groupe d’administration actuel.
Valeur retournée
Un objet avec les propriétés du groupe d’administration actuel.
Exemple de groupe d’administration
L’exemple suivant renvoie les propriétés du groupe d’administration actuel.
{
"$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"variables": {
"mgInfo": "[managementGroup()]"
},
"resources": [],
"outputs": {
"mgResult": {
"type": "object",
"value": "[variables('mgInfo')]"
}
}
}
Cela renvoie :
"mgResult": {
"type": "Object",
"value": {
"id": "/providers/Microsoft.Management/managementGroups/examplemg1",
"name": "examplemg1",
"properties": {
"details": {
"parent": {
"displayName": "Tenant Root Group",
"id": "/providers/Microsoft.Management/managementGroups/00000000-0000-0000-0000-000000000000",
"name": "00000000-0000-0000-0000-000000000000"
},
"updatedBy": "00000000-0000-0000-0000-000000000000",
"updatedTime": "2020-07-23T21:05:52.661306Z",
"version": "1"
},
"displayName": "Example MG 1",
"tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
},
"type": "/providers/Microsoft.Management/managementGroups"
}
}
L’exemple suivant crée un nouveau groupe d’administration et utilise cette fonction pour définir le groupe d’administration parent.
{
"$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"mgName": {
"type": "string",
"defaultValue": "[format('mg-{0}', uniqueString(newGuid()))]"
}
},
"resources": [
{
"type": "Microsoft.Management/managementGroups",
"apiVersion": "2020-05-01",
"scope": "/",
"name": "[parameters('mgName')]",
"properties": {
"details": {
"parent": {
"id": "[managementGroup().id]"
}
}
}
}
],
"outputs": {
"newManagementGroup": {
"type": "string",
"value": "[parameters('mgName')]"
}
}
}
resourceGroup
resourceGroup()
Renvoie un objet qui représente le groupe de ressources actuel.
Dans Bicep, utilisez la fonction d’étendue resourceGroup.
Valeur retournée
L’objet renvoyé présente le format suivant :
{
"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. Pour Managed Applications, Databricks et AKS, la valeur de la propriété est l’ID de ressource de la ressource de gestion.
Notes
La fonction resourceGroup()
ne peut pas être utilisée dans un modèle qui est déployé au niveau abonnement. Elle n’est utilisable que dans les modèles déployés sur un groupe de ressources. 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. Dans ce scénario, le modèle lié ou imbriqué est déployé au niveau du groupe de ressources. 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.
Une utilisation courante de la fonction resourceGroup consiste à créer des ressources dans le même emplacement que le groupe de ressources. L’exemple suivant utilise l’emplacement du groupe de ressources pour une valeur de paramètre par défaut.
"parameters": {
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
}
Vous pouvez également utiliser la fonction resourceGroup
pour appliquer des balises du groupe de ressources à une ressource. Pour plus d’informations, voir Appliquer les balises d’un groupe de ressources.
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
. Pour plus d’informations, voir Déployer des ressources Azure sur plusieurs groupes de ressources et des abonnements.
Exemple de groupe de ressources
L’exemple suivant retourne les propriétés du groupe de ressources.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"resourceGroupOutput": {
"type": "object",
"value": "[resourceGroup()]"
}
}
}
L’exemple précédent renvoie un objet dans le format suivant :
{
"id": "/subscriptions/{subscription-id}/resourceGroups/examplegroup",
"name": "examplegroup",
"type":"Microsoft.Resources/resourceGroups",
"location": "southcentralus",
"properties": {
"provisioningState": "Succeeded"
}
}
subscription
subscription()
Retourne des détails concernant l’abonnement pour le déploiement actuel.
Dans Bicep, utilisez la fonction d’étendue subscription.
Valeur retournée
La fonction retourne les informations au format suivant :
{
"id": "/subscriptions/{subscription-id}",
"subscriptionId": "{subscription-id}",
"tenantId": "{tenant-id}",
"displayName": "{name-of-subscription}"
}
Notes
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. Pour plus d’informations, voir Déployer des ressources Azure sur plusieurs groupes de ressources et des abonnements.
Exemple d’abonnement
L’exemple suivant montre la fonction subscription appelée dans la section outputs.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"subscriptionOutput": {
"type": "object",
"value": "[subscription()]"
}
}
}
tenant
tenant()
Retourne le locataire de l’utilisateur.
Dans Bicep, utilisez la fonction d’étendue tenant.
Remarques
tenant()
peut être utilisée pour toute étendue de déploiement. Elle retourne toujours le locataire actuel. Utilisez cette fonction pour obtenir les propriétés du locataire actuel.
Lors de la définition de l’étendue d’un modèle lié ou d’une ressource d’extension, utilisez la syntaxe suivante : "scope": "/"
.
Valeur retournée
Un objet avec les propriétés du locataire actuel.
Exemple de locataire
L’exemple suivant renvoie les propriétés d’un locataire.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"variables": {
"tenantInfo": "[tenant()]"
},
"resources": [],
"outputs": {
"tenantResult": {
"type": "object",
"value": "[variables('tenantInfo')]"
}
}
}
Cela renvoie :
"tenantResult": {
"type": "Object",
"value": {
"countryCode": "US",
"displayName": "Contoso",
"id": "/tenants/00000000-0000-0000-0000-000000000000",
"tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
}
}
Étapes suivantes
- Pour obtenir une description des sections d’un modèle ARM, consultez Comprendre la structure et la syntaxe des modèles ARM.
- Pour fusionner plusieurs modèles, consultez Utilisation de modèles liés et imbriqués lors du déploiement de ressources Azure.
- Pour itérer un nombre spécifié lors de la création d’un type de ressource, consultez Itération de ressource dans les modèles ARM.
- Pour découvrir comment déployer le modèle que vous avez créé, consultez Déployer des ressources avec des modèles ARM et Azure PowerShell.