Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de changer d’annuaire.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer d’annuaire.
Cet article explique comment définir et utiliser des paramètres dans un fichier Bicep. En fournissant des valeurs différentes pour les paramètres, vous pouvez réutiliser un fichier Bicep pour différents environnements.
Azure Resource Manager résout les valeurs des paramètres avant de démarrer les opérations de déploiement. Chaque fois que le paramètre est utilisé, Resource Manager le remplace par la valeur résolue.
Chaque paramètre doit être défini sur l’un des types de données.
Bicep autorise un maximum de 256 paramètres. Pour plus d’informations, consultez Limites du modèle.
Pour connaître les meilleures pratiques relatives aux paramètres, consultez Paramètres.
Définir les paramètres
Chaque paramètre a un nom et un type de données. Si vous le souhaitez, vous pouvez attribuer une valeur par défaut à un paramètre.
@<decorator>(<argument>)
param <parameter-name> <parameter-data-type> = <default-value>
Un paramètre ne peut pas avoir le même nom qu’une variable, qu’une ressource, qu’une sortie ou qu’un autre paramètre dans la même étendue.
L’exemple suivant montre des déclarations de base de paramètres.
param demoString string
param demoInt int
param demoBool bool
param demoObject object
param demoArray array
Le mot clé param est également utilisé dans les fichiers .bicepparam. Vous n’avez pas besoin de spécifier le type de données dans les fichiers .bicepparam, car il est défini dans les fichiers Bicep.
param <parameter-name> = <value>
Les expressions de type définies par l’utilisateur peuvent être utilisées comme clause de type d’une instruction param. Voici un exemple :
param storageAccountConfig {
name: string
sku: string
}
Pour plus d’informations, consultez Types de données définis par l’utilisateur dans Bicep.
Définir les valeurs par défaut
Vous pouvez spécifier une valeur par défaut pour un paramètre. La valeur par défaut est utilisée quand aucune valeur n’est fournie pendant le déploiement.
param demoParam string = 'Contoso'
Vous pouvez utiliser des expressions avec la valeur par défaut. Les expressions ne sont pas autorisées avec d’autres propriétés de paramètre. Vous ne pouvez pas utiliser la reference fonction ou l’une list des fonctions de la section paramètres. Ces fonctions obtiennent l’état d’exécution de la ressource et ne peuvent pas être exécutées avant le déploiement lorsque les paramètres sont résolus.
param location string = resourceGroup().location
Vous pouvez utiliser une autre valeur de paramètre pour générer une valeur par défaut. Le modèle suivant construit un nom de plan d’hôte à partir du nom de site.
param siteName string = 'site${uniqueString(resourceGroup().id)}'
param hostingPlanName string = '${siteName}-plan'
output siteNameOutput string = siteName
output hostingPlanOutput string = hostingPlanName
Toutefois, vous ne pouvez pas référencer une variable comme valeur par défaut.
Utiliser des éléments décoratifs
Les paramètres utilisent des décorateurs pour les contraintes ou les métadonnées. Les décorateurs sont au format @expression et sont placés au-dessus de la déclaration du paramètre. Le tableau suivant présente les décorateurs disponibles pour des paramètres :
| Élément décoratif | S’applique à | Raisonnement | Descriptif |
|---|---|---|---|
| autorisé | all | tableau | Utilisez cet élément décoratif pour vérifier que l’utilisateur fournit des valeurs correctes. L’élément décoratif n’est autorisé que sur les instructions param. Pour déclarer qu’une propriété doit faire partie d’un ensemble de valeurs prédéfinies dans une instruction type ou output, utilisez la syntaxe du type d’union. La syntaxe de type Union peut également être utilisée dans les instructions param. |
| description | all | ficelle | Texte qui explique comment utiliser le paramètre. La description apparaît aux utilisateurs dans le portail Azure. |
| discriminant | objet | ficelle | Utilisez cet élément décoratif pour vous assurer que la sous-classe appropriée est identifiée et gérée. Pour plus d’informations, consultez Type de données d’union avec étiquette personnalisée. |
| maxLength | tableau, chaîne | int | Longueur maximale des paramètres de type chaîne et tableau. La valeur est inclusive. |
| maxValue | int | int | Valeur maximale du paramètre de type entier. Cette valeur est inclusive. |
| metadata | all | objet | Propriétés personnalisées à appliquer au paramètre. Peut inclure une propriété Description qui est équivalente à l’élément décoratif de description. |
| minLength | tableau, chaîne | int | Longueur minimale des paramètres de type chaîne et tableau. La valeur est inclusive. |
| minValue | int | int | Valeur minimale du paramètre de type entier. Cette valeur est inclusive. |
| scellé | objet | Aucun | Faire passer BCP089 d’un avertissement à une erreur lorsqu’un nom de propriété d’un type de données défini par l’utilisateur est susceptible d’être une faute de frappe. Pour plus d’informations, consultez Élever le niveau d’erreur. |
| sûr | string, objet | Aucun | Marque le paramètre comme sécurisé. La valeur d’un paramètre sécurisé n’est pas enregistrée dans l’historique de déploiement et n’est pas journalisée. Pour plus d’informations, consultez Sécuriser les chaînes et les objets. |
Les éléments décoratifs se trouvent dans l’espace de noms sys. Si vous devez différencier un élément décoratif d'un autre élément portant le même nom, faites précéder l’élément décoratif de sys. Par exemple, si votre fichier Bicep contient un paramètre nommé description, vous devez ajouter l’espace de noms sys lors de l’utilisation de l’élément décoratif description.
@sys.description('The name of the instance.')
param name string
@sys.description('The description of the instance to display.')
param description string
Valeurs autorisées
Vous pouvez définir des valeurs autorisées pour un paramètre. Vous fournissez les valeurs autorisées dans un tableau. Le déploiement échoue pendant la validation si une valeur transmise pour le paramètre n’est pas l’une des valeurs autorisées.
@allowed([
'one'
'two'
])
param demoEnum string
Si vous définissez des valeurs autorisées pour un paramètre de tableau, la valeur réelle peut être n’importe quel sous-ensemble des valeurs autorisées.
Descriptif
Pour aider les utilisateurs à comprendre la valeur qu’ils doivent fournir, ajoutez une description au paramètre. Lorsqu’un utilisateur déploie le modèle par le biais du portail Azure, le texte de la description est automatiquement utilisé comme une info-bulle pour ce paramètre. Ajoutez une description uniquement quand le texte fournit des informations en plus de celles qui peuvent être déduites du nom du paramètre.
@description('Must be at least Standard_A3 to support 2 NICs.')
param virtualMachineSize string = 'Standard_DS1_v2'
Du texte au format Markdown peut être utilisé pour le texte de description :
@description('''
Storage account name restrictions:
- Storage account names must be between 3 and 24 characters in length and can only contain numbers and lowercase letters.
- Your storage account name must be unique within Azure. No two storage accounts can have the same name.
''')
@minLength(3)
@maxLength(24)
param storageAccountName string
Quand vous placez le curseur sur storageAccountName dans Visual Studio Code, vous voyez le texte mis en forme :
Assurez-vous que le texte suit la mise en forme Markdown appropriée ; sinon, il peut ne pas s’afficher correctement lors du rendu.
Discriminant
Consultez Type de données d’union avec étiquette personnalisée.
Contraintes d’entier
Vous pouvez définir des valeurs minimales et maximales pour les paramètres de type entier. Vous pouvez définir une contrainte ou les deux.
@minValue(1)
@maxValue(12)
param month int
Contraintes de longueur
Vous pouvez spécifier des longueurs minimale et maximale pour les paramètres de chaîne et de tableau. Vous pouvez définir une contrainte ou les deux. Pour les chaînes, la longueur indique le nombre de caractères. Pour les tableaux, la longueur indique le nombre d’éléments dans le tableau.
L’exemple suivant déclare deux paramètres. Un paramètre concerne un nom de compte de stockage qui doit comporter 3 à 24 caractères. L’autre paramètre est un tableau qui doit avoir 1 à 5 éléments.
@minLength(3)
@maxLength(24)
param storageAccountName string
@minLength(1)
@maxLength(5)
param appNames array
Métadonnées
Si vous disposez de propriétés personnalisées que vous souhaitez appliquer à un paramètre, ajoutez un élément décoratif de métadonnées. Dans les métadonnées, définissez un objet avec des noms et valeurs personnalisés. L’objet que vous définissez pour les métadonnées peut contenir des propriétés de n’importe quel nom et type.
Vous pouvez utiliser cet élément décoratif pour suivre les informations relatives au paramètre qu'il n'est pas utile d'ajouter à la description.
@description('Configuration values that are applied when the application starts.')
@metadata({
source: 'database'
contact: 'Web team'
})
param settings object
Lorsque vous fournissez un @metadata() décorateur avec une propriété qui est en conflit avec un autre décorateur, ce décorateur a toujours la priorité sur tout élément dans le @metadata() décorateur, de sorte que la propriété conflictuelle dans la valeur @metadata() est redondante et sera par conséquent remplacée. Pour plus d’informations, consultez la règle Linter : aucune métadonnées en conflit.
Sealed
Consultez Élever le niveau d’erreur.
Paramètres sécurisés
Vous pouvez marquer les paramètres de chaîne ou d’objet comme sécurisés. Lorsqu’un paramètre est décoré avec @secure(), Azure Resource Manager traite la valeur du paramètre comme sensible, ce qui l’empêche d’être journalisé ou affiché dans l’historique de déploiement, le portail Azure ou les sorties de ligne de commande.
@secure()
param demoPassword string
@secure()
param demoSecretObject object
Il existe plusieurs règles du linter liées à cet élément décoratif : Valeur par défaut de paramètre sécurisé, Paramètres sécurisés dans les déploiements imbriqués, Sécuriser les secrets dans les paramètres.
Utilisation des paramètres
Pour référencer la valeur d’un paramètre, utilisez le nom du paramètre. L’exemple suivant utilise une valeur de paramètre comme nom de coffre de clés.
param vaultName string = 'keyVault${uniqueString(resourceGroup().id)}'
resource keyvault 'Microsoft.KeyVault/vaults@2025-05-01' = {
name: vaultName
...
}
Le @secure() décorateur est valide uniquement pour les paramètres de chaîne ou d’objet de type, car ils s’alignent sur les types secureString et secureObject dans les modèles ARM. Pour passer des tableaux ou des nombres en toute sécurité, encapsulez-les dans un objet secureObject ou sérialisez-les en tant que secureString.
Utiliser des objets en tant que paramètres
Il peut s’avérer plus facile d’organiser des valeurs connexes en les transmettant en tant qu’objets. Cette approche réduit également le nombre de paramètres dans le modèle.
L’exemple suivant montre un paramètre qui est un objet. La valeur par défaut affiche les propriétés attendues pour l’objet. Ces propriétés sont utilisées lors de la définition de la ressource à déployer.
param vNetSettings object = {
name: 'VNet1'
location: 'eastus'
addressPrefixes: [
{
name: 'firstPrefix'
addressPrefix: '10.0.0.0/22'
}
]
subnets: [
{
name: 'firstSubnet'
addressPrefix: '10.0.0.0/24'
}
{
name: 'secondSubnet'
addressPrefix: '10.0.1.0/24'
}
]
}
resource vnet 'Microsoft.Network/virtualNetworks@2025-01-01' = {
name: vNetSettings.name
location: vNetSettings.location
properties: {
addressSpace: {
addressPrefixes: [
vNetSettings.addressPrefixes[0].addressPrefix
]
}
subnets: [
{
name: vNetSettings.subnets[0].name
properties: {
addressPrefix: vNetSettings.subnets[0].addressPrefix
}
}
{
name: vNetSettings.subnets[1].name
properties: {
addressPrefix: vNetSettings.subnets[1].addressPrefix
}
}
]
}
}
Étapes suivantes
- Pour en savoir plus sur les propriétés disponibles pour les paramètres, consultez la structure et la syntaxe des fichiers Bicep.
- Pour en savoir plus sur la transmission de valeurs de paramètre en tant que fichier, consultez Créer un fichier de paramètres pour le déploiement Bicep.
- Pour en savoir plus sur la fourniture de valeurs de paramètres lors du déploiement, consultez Déployer des fichiers Bicep avec Azure CLI et Azure PowerShell.