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