Partager via


Fonctions de déploiement pour les modèles ARM

Azure Resource Manager fournit les fonctions suivantes pour obtenir des valeurs liées au déploiement actuel de votre modèle Azure Resource Manager (modèle ARM) :

Pour obtenir des valeurs à partir de ressources, de groupes de ressources ou d’abonnements, consultez les fonctions de ressources.

Tip

Bicep est recommandé, car il offre les mêmes fonctionnalités que les modèles ARM et la syntaxe est plus facile à utiliser. Pour en savoir plus, consultez deployment les fonctions.

deployer

deployer()

Retourne les informations sur le principal de déploiement actuel.

Dans Bicep, utilisez la deployer fonction.

Valeur retournée

Cette fonction retourne les informations sur le principal de déploiement actuel, notamment l’ID de locataire, l’ID d’objet et le nom d’utilisateur principal :

{
  "objectId": "",
  "tenantId": "",
  "userPrincipalName": ""
}

Example

L’exemple suivant retourne l’objet deployer :

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

L’exemple précédent retourne l’objet suivant :

{
  "objectId":"aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
  "tenantId":"aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
  "userPrincipalName":"john.doe@contoso.com"
}

deployment

deployment()

Renvoie des informations sur l’opération de déploiement actuelle.

Dans Bicep, utilisez la deployment fonction.

Valeur retournée

Cette fonction retourne l’objet passé pendant le déploiement. Les propriétés de l’objet retourné diffèrent selon que vous êtes :

  • Déploiement d’un modèle ou d’une spécification de modèle.
  • Déploiement d’un modèle qui est un fichier local ou déploiement d’un modèle accessible via un URI.
  • Déploiement sur un groupe de ressources ou déploiement sur l’une des autres étendues (abonnement Azure, groupes d’administration ou locataires).

Lors du déploiement d’un modèle local dans un groupe de ressources, la fonction retourne le format suivant :

{
  "name": "",
  "properties": {
    "template": {
      "$schema": "",
      "contentVersion": "",
      "parameters": {},
      "variables": {},
      "resources": [],
      "outputs": {}
    },
    "templateHash": "",
    "parameters": {},
    "mode": "",
    "provisioningState": ""
  }
}

Si le modèle est distant, la templateLink propriété est incluse dans l’objet retourné. La templateLink propriété contient l’URI du modèle. Le format est le suivant :

{
  "name": "",
  "properties": {
    "templateLink": {
      "uri": ""
    },
    "template": {
      "$schema": "",
      "contentVersion": "",
      "parameters": {},
      "variables": {},
      "resources": [],
      "outputs": {}
    },
    "templateHash": "",
    "parameters": {},
    "mode": "",
    "provisioningState": ""
  }
}

Pour plus d’informations, consultez Utilisation de variables pour lier des modèles.

Lors du déploiement d’une spécification de modèle dans un groupe de ressources, la fonction retourne le format suivant :

{
  "name": "",
  "properties": {
    "templateLink": {
      "id": ""
    },
    "template": {
      "$schema": "",
      "contentVersion": "",
      "parameters": {},
      "variables": {},
      "resources": [],
      "outputs": {}
    },
    "templateHash": "",
    "parameters": {},
    "mode": "",
    "provisioningState": ""
  }
}

Lorsque vous déployez sur un abonnement Azure, un groupe d’administration ou un locataire, l’objet retourné comprend une propriété location. La propriété d’emplacement est incluse lors du déploiement d’un modèle local ou d’un modèle externe. Le format est le suivant :

{
  "name": "",
  "location": "",
  "properties": {
    "template": {
      "$schema": "",
      "contentVersion": "",
      "resources": [],
      "outputs": {}
    },
    "templateHash": "",
    "parameters": {},
    "mode": "",
    "provisioningState": ""
  }
}

Lors du déploiement d’un modèle languageVersion 2.0 , la deployment fonction retourne un sous-ensemble limité de propriétés :

{
  "name": "",
  "location": "",
  "properties": {
    "template": {
      "contentVersion": "",
      "metadata": {}
    },
    "templateLink": {
      "id": "",
      "uri": ""
    }
  }
}

La location propriété est incluse uniquement pour les déploiements au niveau de l’abonnement, du groupe d’administration ou de l’étendue du locataire . La templateLink propriété est incluse uniquement lorsque l’utilisateur fournit un modèle lié plutôt qu’un modèle inline.

Remarks

Vous pouvez utiliser deployment() pour créer un lien vers un autre modèle en fonction de l’URI du modèle parent :

"variables": {
  "sharedTemplateUrl": "[uri(deployment().properties.templateLink.uri, 'shared-resources.json')]"
}

Si vous redéployez un modèle à partir de l’historique de déploiement dans le portail, le modèle est déployé comme un fichier local. La propriété templateLink n’est pas retournée dans la fonction de déploiement. Si votre modèle s’appuie sur templateLink pour construire un lien vers un autre modèle, n’utilisez pas le portail pour redéployer. À la place, utilisez les commandes dont vous vous êtes servi pour déployer le modèle à l’origine.

Example

L’exemple suivant retourne un objet de déploiement :

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

L’exemple précédent retourne l’objet suivant :

{
  "name": "deployment",
  "properties": {
    "template": {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
      "resources": [],
      "outputs": {
        "deploymentOutput": {
          "type": "Object",
          "value": "[deployment()]"
        }
      }
    },
    "templateHash": "13135986259522608210",
    "parameters": {},
    "mode": "Incremental",
    "provisioningState": "Accepted"
  }
}

Pour un déploiement d’abonnement, l’exemple suivant retourne un objet de déploiement :

{
  "$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {},
  "variables": {},
  "resources": [],
  "outputs": {
    "exampleOutput": {
      "type": "object",
      "value": "[deployment()]"
    }
  }
}

environment

environment()

Retourne des informations sur l’environnement Azure utilisé pour le déploiement. La environment() fonction ne connaît pas les configurations de ressources. Il ne peut retourner qu’un seul suffixe DNS par défaut pour chaque type de ressource.

Dans Bicep, utilisez la environment fonction.

Remarks

Pour afficher la liste des environnements inscrits pour votre compte, utilisez az cloud list ou Get-AzEnvironment.

Valeur retournée

Cette valeur retourne des propriétés pour l’environnement Azure actuel. L’exemple suivant montre les propriétés d’Azure global ; Les clouds souverains peuvent retourner des propriétés légèrement différentes :

{
  "name": "",
  "gallery": "",
  "graph": "",
  "portal": "",
  "graphAudience": "",
  "activeDirectoryDataLake": "",
  "batch": "",
  "media": "",
  "sqlManagement": "",
  "vmImageAliasDoc": "",
  "resourceManager": "",
  "authentication": {
    "loginEndpoint": "",
    "audiences": [
      "",
      ""
    ],
    "tenant": "",
    "identityProvider": ""
  },
  "suffixes": {
    "acrLoginServer": "",
    "azureDatalakeAnalyticsCatalogAndJob": "",
    "azureDatalakeStoreFileSystem": "",
    "azureFrontDoorEndpointSuffix": "",
    "keyvaultDns": "",
    "sqlServerHostname": "",
    "storage": ""
  }
}

Example

L’exemple de modèle suivant retourne l’objet d’environnement :

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

L’exemple précédent retourne l’objet suivant lorsqu’il est déployé vers Azure international :

{
  "name": "AzureCloud",
  "gallery": "https://gallery.azure.com/",
  "graph": "https://graph.windows.net/",
  "portal": "https://portal.azure.com",
  "graphAudience": "https://graph.windows.net/",
  "activeDirectoryDataLake": "https://datalake.azure.net/",
  "batch": "https://batch.core.windows.net/",
  "media": "https://rest.media.azure.net",
  "sqlManagement": "https://management.core.windows.net:8443/",
  "vmImageAliasDoc": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/arm-compute/quickstart-templates/aliases.json",
  "resourceManager": "https://management.azure.com/",
  "authentication": {
    "loginEndpoint": "https://login.microsoftonline.com/",
    "audiences": [
      "https://management.core.windows.net/",
      "https://management.azure.com/"
    ],
    "tenant": "common",
    "identityProvider": "AAD"
  },
  "suffixes": {
    "acrLoginServer": ".azurecr.io",
    "azureDatalakeAnalyticsCatalogAndJob": "azuredatalakeanalytics.net",
    "azureDatalakeStoreFileSystem": "azuredatalakestore.net",
    "azureFrontDoorEndpointSuffix": "azurefd.net",
    "keyvaultDns": ".vault.azure.net",
    "sqlServerHostname": ".database.windows.net",
    "storage": "core.windows.net"
  }
}

parameters

parameters(parameterName)

Retourne une valeur de paramètre. Le nom de paramètre spécifié doit être défini dans la section paramètres du modèle.

Dans Bicep, référencez directement les paramètres à l’aide de leurs noms symboliques.

Parameters

Parameter Required Type Description
parameterName Yes string Nom du paramètre à retourner.

Valeur retournée

La valeur du paramètre spécifié.

Remarks

En général, vous utilisez les paramètres pour définir les valeurs de la ressource. L’exemple suivant définit le nom du site web sur la valeur du paramètre transmise au cours du déploiement.

"parameters": {
  "siteName": {
    "type": "string"
  }
}, "resources": [
  {
    "type": "Microsoft.Web/Sites",
    "apiVersion": "2025-03-01",
    "name": "[parameters('siteName')]",
    ...
  }
]

Example

L’exemple suivant montre une utilisation simplifiée de la parameters fonction :

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "stringParameter": {
      "type": "string",
      "defaultValue": "option 1"
    },
    "intParameter": {
      "type": "int",
      "defaultValue": 1
    },
    "objectParameter": {
      "type": "object",
      "defaultValue": {
        "one": "a",
        "two": "b"
      }
    },
    "arrayParameter": {
      "type": "array",
      "defaultValue": [ 1, 2, 3 ]
    },
    "crossParameter": {
      "type": "string",
      "defaultValue": "[parameters('stringParameter')]"
    }
  },
  "variables": {},
  "resources": [],
  "outputs": {
    "stringOutput": {
      "type": "string",
      "value": "[parameters('stringParameter')]"
    },
    "intOutput": {
      "type": "int",
      "value": "[parameters('intParameter')]"
    },
    "objectOutput": {
      "type": "object",
      "value": "[parameters('objectParameter')]"
    },
    "arrayOutput": {
      "type": "array",
      "value": "[parameters('arrayParameter')]"
    },
    "crossOutput": {
      "type": "string",
      "value": "[parameters('crossParameter')]"
    }
  }
}

La sortie des valeurs par défaut de l’exemple précédent est la suivante :

Name Type Value
stringOutput String Option 1
intOutput Int 1
objectOutput Object {"one » : « a », « two » : « b"}
arrayOutput Array [1, 2, 3]
crossOutput String Option 1

Pour plus d’informations sur l’utilisation des paramètres, consultez les paramètres dans les modèles ARM.

variables

variables(variableName)

Retourne la valeur d’une variable. Le nom de variable spécifié doit être défini dans la section variables du modèle.

Dans Bicep, référencez directement des variables à l’aide de leurs noms symboliques.

Parameters

Parameter Required Type Description
variableName Yes String Nom de la variable à retourner.

Valeur retournée

La valeur de la variable spécifiée.

Remarks

En général, vous utilisez les variables pour simplifier votre modèle en créant des valeurs complexes une seule fois. L’exemple suivant construit un nom unique pour un compte de stockage :

"variables": {
  "storageName": "[concat('storage', uniqueString(resourceGroup().id))]"
},
"resources": [
  {
    "type": "Microsoft.Storage/storageAccounts",
    "name": "[variables('storageName')]",
    ...
  },
  {
    "type": "Microsoft.Compute/virtualMachines",
    "dependsOn": [
      "[variables('storageName')]"
    ],
    ...
  }
],

Example

L’exemple suivant retourne différentes valeurs de variable :

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {},
  "variables": {
    "var1": "myVariable",
    "var2": [ 1, 2, 3, 4 ],
    "var3": "[ variables('var1') ]",
    "var4": {
      "property1": "value1",
      "property2": "value2"
    }
  },
  "resources": [],
  "outputs": {
    "exampleOutput1": {
      "type": "string",
      "value": "[variables('var1')]"
    },
    "exampleOutput2": {
      "type": "array",
      "value": "[variables('var2')]"
    },
    "exampleOutput3": {
      "type": "string",
      "value": "[variables('var3')]"
    },
    "exampleOutput4": {
      "type": "object",
      "value": "[variables('var4')]"
    }
  }
}

La sortie des valeurs par défaut de l’exemple précédent est la suivante :

Name Type Value
exampleOutput1 String myVariable
exampleOutput2 Array [1, 2, 3, 4]
exampleOutput3 String myVariable
exampleOutput4 Object {"property1 » : « value1 », « property2 » : « value2"}

Pour plus d’informations sur l’utilisation de variables, consultez les variables dans le modèle ARM.

Étapes suivantes

Pour en savoir plus sur les sections d’un modèle ARM, consultez la structure et la syntaxe des modèles ARM.