Fonctions à utiliser avec Azure Blueprints
Important
Le 11 juillet 2026, Blueprints (préversion) sera devenu obsolète. Migrez vos définitions et affectations Blueprint existantes vers les Spécifications de modèleet lesPiles de déploiement. Les artefacts de Blueprint doivent être convertis en modèles ARM JSON ou en fichiers Bicep utilisés pour définir des piles de déploiement. Pour savoir comment créer un artefact en tant que ressource ARM, consultez :
Azure Blueprints fournit des fonctions pour une définition de blueprint plus dynamique. Ces fonctions sont conçues pour être utilisées avec les définitions et artefacts de blueprint. En plus de l’obtention d’une valeur dynamique grâce à un paramètre de blueprint, un artefact Azure Resource Manager Template (modèle ARM) permet de tirer pleinement profit des fonctionnalités de Resource Manager.
Les fonctions suivantes sont prises en charge :
artifacts
artifacts(artifactName)
Retourne un objet de propriétés rempli avec ces sorties d’artefacts de blueprint.
Notes
La fonction artifacts()
ne peut pas être utilisée à l’intérieur d’un modèle ARM. La fonction peut être utilisée uniquement dans le JSON de définition du blueprint ou dans le JSON d’artefact lors de la gestion du blueprint avec Azure PowerShell ou l’API REST dans le cadre de Blueprints-as-code.
Paramètres
Paramètre | Obligatoire | Type | Description |
---|---|---|---|
artifactName | Oui | string | Nom d’un artefact de blueprint. |
Valeur retournée
Objet de propriétés de sortie. Les propriétés outputs dépendent du type d’artefact de blueprint référencé. Tous les types suivent le format :
{
"outputs": {collectionOfOutputProperties}
}
Artefact d’affectation de stratégie
{
"outputs": {
"policyAssignmentId": "{resourceId-of-policy-assignment}",
"policyAssignmentName": "{name-of-policy-assignment}",
"policyDefinitionId": "{resourceId-of-policy-definition}",
}
}
Artefact de modèle ARM
Les propriétés outputs de l’objet retourné sont définies dans le modèle ARM et retournées par le déploiement.
Artefact d’affectation de rôle
{
"outputs": {
"roleAssignmentId": "{resourceId-of-role-assignment}",
"roleDefinitionId": "{resourceId-of-role-definition}",
"principalId": "{principalId-role-is-being-assigned-to}",
}
}
Exemple
Un artefact de modèle ARM avec l’ID myTemplateArtifact contenant l’exemple de propriété de sortie suivant :
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
...
"outputs": {
"myArray": {
"type": "array",
"value": ["first", "second"]
},
"myString": {
"type": "string",
"value": "my string value"
},
"myObject": {
"type": "object",
"value": {
"myProperty": "my value",
"anotherProperty": true
}
}
}
}
Voici quelques exemples de récupération de données de l’exemple myTemplateArtifact :
Expression | Type | Valeur |
---|---|---|
[artifacts("myTemplateArtifact").outputs.myArray] |
Array | ["first", "second"] |
[artifacts("myTemplateArtifact").outputs.myArray[0]] |
String | "première" |
[artifacts("myTemplateArtifact").outputs.myString] |
String | "ma valeur de chaîne" |
[artifacts("myTemplateArtifact").outputs.myObject] |
Object | { "ma propriété": "ma valeur", "autre propriété": true } |
[artifacts("myTemplateArtifact").outputs.myObject.myProperty] |
String | "ma valeur" |
[artifacts("myTemplateArtifact").outputs.myObject.anotherProperty] |
Bool | True |
concat
concat(string1, string2, string3, ...)
Combine plusieurs valeurs de chaîne et renvoie la chaîne concaténée.
Paramètres
Paramètre | Obligatoire | Type | Description |
---|---|---|---|
string1 | Oui | string | La première valeur pour la concaténation. |
arguments supplémentaires | Non | string | Valeurs supplémentaires en ordre séquentiel pour la concaténation |
Valeur retournée
Chaîne de valeurs concaténées.
Notes
La fonction Azure Blueprints diffère de la fonction de modèle ARM, car elle n’est compatible qu’avec des chaînes.
Exemple
concat(parameters('organizationName'), '-vm')
parameters
parameters(parameterName)
Retourne une valeur de paramètre de blueprint. Le nom du paramètre spécifié doit être défini dans la définition de blueprint ou dans les artefacts de blueprint.
Paramètres
Paramètre | Obligatoire | Type | Description |
---|---|---|---|
parameterName | Oui | string | Nom du paramètre à retourner. |
Valeur retournée
Valeur du paramètre de blueprint ou d’artefact de blueprint spécifié.
Notes
La fonction Azure Blueprints diffère de la fonction de modèle ARM, car elle n’est compatible qu’avec des paramètres de blueprint.
Exemple
Définissez les principalIds de paramètre dans la définition de blueprint :
{
"type": "Microsoft.Blueprint/blueprints",
"properties": {
...
"parameters": {
"principalIds": {
"type": "array",
"metadata": {
"displayName": "Principal IDs",
"description": "This is a blueprint parameter that any artifact can reference. We'll display these descriptions for you in the info bubble. Supply principal IDs for the users,groups, or service principals for the Azure role assignment.",
"strongType": "PrincipalId"
}
}
},
...
}
}
Utilisez ensuite principalIds comme argument pour parameters()
dans un artefact de blueprint :
{
"type": "Microsoft.Blueprint/blueprints/artifacts",
"kind": "roleAssignment",
...
"properties": {
"roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635",
"principalIds": "[parameters('principalIds')]",
...
}
}
resourceGroup
resourceGroup()
Renvoie un objet qui représente le groupe de ressources actuel.
Valeur retournée
L’objet renvoyé présente le format suivant :
{
"name": "{resourceGroupName}",
"location": "{resourceGroupLocation}",
}
Notes
La fonction Azure Blueprints diffère de la fonction de modèle ARM. La fonction resourceGroup()
ne peut pas être utilisée dans un artefact de niveau d’abonnement ou la définition de blueprint. Elle ne peut être utilisée que dans des artefacts de blueprint faisant partie d’un artefact de groupe de ressources.
Une utilisation courante de la fonction resourceGroup()
consiste à créer des ressources dans le même emplacement que l’artefact de groupe de ressources.
Exemple
Pour utiliser l’emplacement du groupe de ressources, définissez-le dans la définition de blueprint ou lors de l’affectation comme l’emplacement d’un autre artefact, et déclarez un objet d’espace réservé de groupe de ressources dans votre définition de blueprint. Dans cet exemple, NetworkingPlaceholder est le nom de l’espace réservé de groupe de ressources.
{
"type": "Microsoft.Blueprint/blueprints",
"properties": {
...
"resourceGroups": {
"NetworkingPlaceholder": {
"location": "eastus"
}
}
}
}
Utilisez ensuite la fonction resourceGroup()
dans le contexte d’un artefact de blueprint qui cible un objet d’espace réservé de groupe de ressources. Dans cet exemple, l’artefact de modèle est déployé dans le groupe de ressources NetworkingPlaceholder et le paramètre resourceLocation est rempli de manière dynamique avec l’emplacement du groupe de ressources NetworkingPlaceholder pour le modèle. L’emplacement du groupe de ressources NetworkingPlaceholder peut être défini de manière statique dans la définition de blueprint ou de manière dynamique lors de l’affectation. Dans les deux cas, l’artefact de modèle reçoit ces informations sous forme de paramètre et les utilise pour déployer les ressources dans l’emplacement approprié.
{
"type": "Microsoft.Blueprint/blueprints/artifacts",
"kind": "template",
"properties": {
"template": {
...
},
"resourceGroup": "NetworkingPlaceholder",
...
"parameters": {
"resourceLocation": {
"value": "[resourceGroup().location]"
}
}
}
}
resourceGroups
resourceGroups(placeholderName)
Retourne un objet représentant l’artefact de groupe de ressources spécifié. Contrairement à resourceGroup()
, où le contexte de l’artefact est nécessaire, cette fonction est utilisée pour obtenir les propriétés d’un espace réservé de groupe de ressources spécifique en l’absence de contexte pour ce groupe de ressources.
Paramètres
Paramètre | Obligatoire | Type | Description |
---|---|---|---|
placeholderName | Oui | string | Nom de l’espace réservé de l’artefact de groupe de ressources à retourner. |
Valeur retournée
L’objet renvoyé présente le format suivant :
{
"name": "{resourceGroupName}",
"location": "{resourceGroupLocation}",
}
Exemple
Pour utiliser l’emplacement du groupe de ressources, définissez-le dans la définition de blueprint ou lors de l’affectation comme l’emplacement d’un autre artefact, et déclarez un objet d’espace réservé de groupe de ressources dans votre définition de blueprint. Dans cet exemple, NetworkingPlaceholder est le nom de l’espace réservé de groupe de ressources.
{
"type": "Microsoft.Blueprint/blueprints",
"properties": {
...
"resourceGroups": {
"NetworkingPlaceholder": {
"location": "eastus"
}
}
}
}
Utilisez ensuite la fonction resourceGroups()
dans le contexte d’un artefact de blueprint pour obtenir une référence à l’objet d’espace réservé de groupe de ressources. Dans cet exemple, l’artefact de modèle est déployé en dehors du groupe de ressources NetworkingPlaceholder et le paramètre artifactLocation est rempli de manière dynamique avec l’emplacement du groupe de ressources NetworkingPlaceholder pour le modèle. L’emplacement du groupe de ressources NetworkingPlaceholder peut être défini de manière statique dans la définition de blueprint ou de manière dynamique lors de l’affectation. Dans les deux cas, l’artefact de modèle reçoit ces informations sous forme de paramètre et les utilise pour déployer les ressources dans l’emplacement approprié.
{
"kind": "template",
"properties": {
"template": {
...
},
...
"parameters": {
"artifactLocation": {
"value": "[resourceGroups('NetworkingPlaceholder').location]"
}
}
},
"type": "Microsoft.Blueprint/blueprints/artifacts",
"name": "myTemplate"
}
subscription
subscription()
Retourne des détails concernant l’abonnement pour l’affectation de blueprint actuelle.
Valeur retournée
L’objet renvoyé présente le format suivant :
{
"id": "/subscriptions/{subscriptionId}",
"subscriptionId": "{subscriptionId}",
"tenantId": "{tenantId}",
"displayName": "{name-of-subscription}"
}
Exemple
Utilisez le nom d’affichage de l’abonnement et la fonction concat()
pour créer une convention de dénomination transmise sous forme de paramètre resourceName à l’artefact de modèle.
{
"kind": "template",
"properties": {
"template": {
...
},
...
"parameters": {
"resourceName": {
"value": "[concat(subscription().displayName, '-vm')]"
}
}
},
"type": "Microsoft.Blueprint/blueprints/artifacts",
"name": "myTemplate"
}
Étapes suivantes
- En savoir plus sur le cycle de vie des blueprints
- Comprendre comment utiliser les paramètres statiques et dynamiques.
- Apprendre à personnaliser l’ordre de séquencement des blueprints.
- Découvrir comment utiliser le verrouillage de ressources de blueprint.
- Découvrir comment mettre à jour des affectations existantes.
- Résoudre les problèmes durant l’affectation d’un blueprint en suivant les étapes de dépannage général.