Créer des fichiers de paramètres pour le déploiement Bicep
Plutôt que de passer des paramètres en tant que valeurs incluses dans votre script, vous pouvez utiliser un fichier de paramètres Bicep avec l’extension de .bicepparam
fichier ou un fichier de paramètres JSON qui contient les valeurs de paramètre. Cet article explique comment créer des fichiers de paramètres.
Remarque
Le fichier de paramètres Bicep est uniquement pris en charge dans Bicep CLI version 0.18.4 ou ultérieure, Azure CLI version 2.47.0 ou ultérieure et Azure PowerShell version 9.7.1 ou ultérieure.
Un seul fichier Bicep peut être associé à plusieurs fichiers de paramètres Bicep. Toutefois, chaque fichier de paramètres Bicep est destiné à un fichier Bicep particulier. Cette relation est établie avec l’instruction using dans le fichier de paramètres Bicep.
Vous pouvez compiler des fichiers de paramètres Bicep dans des fichiers de paramètres JSON à déployer avec un fichier Bicep. Voir build-params. Vous pouvez également décompiler un fichier de paramètres JSON dans un fichier de paramètres Bicep. Si vous souhaitez en savoir plus, veuillez consulter la rubrique decompile-params.
Fichier de paramètres
Un fichier de paramètres utilise le format suivant :
using '<path>/<file-name>.bicep'
param <first-parameter-name> = <first-value>
param <second-parameter-name> = <second-value>
Vous pouvez utiliser l’instruction using avec un fichier Bicep, des modèles JSON Azure Resource Manager, des modules Bicep et des spécifications de modèle. Par exemple :
using './main.bicep'
...
using './azuredeploy.json'
...
using 'br/public:avm/res/storage/storage-account:0.9.0'
...
using 'br:myacr.azurecr.io/bicep/modules/storage:v1'
...
using 'ts:00000000-0000-0000-0000-000000000000/myResourceGroup/storageSpec:1.0'
...
Pour plus d’informations, consultez using, instruction.
Vous pouvez utiliser des expressions avec la valeur par défaut. Par exemple :
using 'main.bicep'
param storageName = toLower('MyStorageAccount')
param intValue = 2 + 2
Vous pouvez référencer des variables d’environnement en tant que valeurs de paramètre. Par exemple :
using './main.bicep'
param intFromEnvironmentVariables = int(readEnvironmentVariable('intEnvVariableName'))
Vous pouvez définir et utiliser des variables. L’interface CLI Bicep version 0.21.X ou ultérieure est nécessaire pour utiliser des variables dans le fichier .bicepparam. Voici quelques exemples :
using './main.bicep'
var storagePrefix = 'myStorage'
param primaryStorageName = '${storagePrefix}Primary'
param secondaryStorageName = '${storagePrefix}Secondary'
using './main.bicep'
var testSettings = {
instanceSize: 'Small'
instanceCount: 1
}
var prodSettings = {
instanceSize: 'Large'
instanceCount: 4
}
param environmentSettings = {
test: testSettings
prod: prodSettings
}
Notez que le fichier de paramètres enregistre les valeurs de paramètre en texte brut. Pour des raisons de sécurité, cette approche n’est pas recommandée pour les valeurs sensibles comme les mots de passe. Si vous devez passer un paramètre avec une valeur sensible, conservez la valeur dans un coffre de clés. Au lieu d’ajouter une valeur sensible à votre fichier de paramètres, utilisez la fonction getSecret pour la récupérer. Pour plus d'informations, consultez Utiliser Azure Key Vault pour transmettre une valeur de paramètre sécurisée pendant le déploiement Bicep.
Formats de types de paramètres
L’exemple suivant illustre les formats de différents types de paramètres : chaîne, entier, booléen, tableau et objet.
using './main.bicep'
param exampleString = 'test string'
param exampleInt = 2 + 2
param exampleBool = true
param exampleArray = [
'value 1'
'value 2'
]
param exampleObject = {
property1: 'value 1'
property2: 'value 2'
}
Utilisez la syntaxe Bicep pour déclarer des objets et des tableaux.
Nom de fichier
Le fichier de paramètres Bicep a l’extension de fichier ..bicepparam
Pour effectuer un déploiement dans différents environnements, créez plusieurs fichiers de paramètres. Lorsque vous nommez plusieurs fichiers de paramètres, étiquetez leur utilisation en tant que développement et production. Par exemple, utilisez main.dev.bicepparam pour le développement et main.prod.bicepparam pour déployer des ressources.
Définissez des valeurs de paramètre
Pour déterminer comment définir des noms de paramètres et des valeurs, ouvrez votre fichier Bicep. Consultez la section Paramètres du fichier Bicep. Les exemples suivants montrent les paramètres d’un fichier Bicep nommé main.bicep
:
@maxLength(11)
param storagePrefix string
@allowed([
'Standard_LRS'
'Standard_GRS'
'Standard_ZRS'
'Premium_LRS'
])
param storageAccountType string = 'Standard_LRS'
Dans le fichier de paramètres, le premier détail à noter est le nom de chaque paramètre. Les noms des paramètres de votre fichier de paramètres doivent correspondre à ceux de votre fichier Bicep.
using 'main.bicep'
param storagePrefix
param storageAccountType
L’instruction using
lie le fichier de paramètres Bicep à un fichier Bicep. Si vous souhaitez en savoir plus, veuillez consulter la rubrique Instruction using.
Après avoir tapé le mot clé param
dans Visual Studio Code, il vous demande les paramètres disponibles et leurs descriptions à partir du fichier Bicep lié :
Lorsque vous pointez sur un nom de param, vous pouvez voir le type de données et la description du paramètre.
Notez le type de paramètre. Les types de paramètres de votre fichier de paramètres doivent utiliser les mêmes types que votre fichier Bicep. Dans cet exemple, les deux types de paramètres sont des chaînes.
using 'main.bicep'
param storagePrefix = ''
param storageAccountType = ''
Vérifiez dans le fichier Bicep les paramètres comportant une valeur par défaut. Si un paramètre a une valeur par défaut, vous pouvez fournir une valeur dans le fichier de paramètres, mais ce n’est pas obligatoire. La valeur du fichier de paramètres remplace la valeur par défaut du fichier Bicep.
using 'main.bicep'
param storagePrefix = '' // This value must be provided.
param storageAccountType = '' // This value is optional. Bicep will use default value if not provided.
Vérifiez les valeurs autorisées du fichier Bicep et toutes les restrictions telles que la longueur maximale. Ces valeurs spécifient la plage de valeurs que vous pouvez fournir pour un paramètre. Dans cet exemple, storagePrefix
peut avoir un maximum de 11 caractères et storageAccountType
doit spécifier une valeur autorisée.
using 'main.bicep'
param storagePrefix = 'storage'
param storageAccountType = 'Standard_ZRS'
Générer un fichier de paramètres
Vous pouvez créer un fichier de paramètres de deux façons : avec VS Code ou l’interface CLI Bicep. Les deux outils vous permettent d’utiliser un fichier Bicep pour générer un fichier de paramètres. Consultez Générer un fichier de paramètres pour la méthode VS Code et Générer un fichier de paramètres pour la méthode CLI Bicep.
Construire un fichier de paramètres Bicep
À partir de l’interface CLI Bicep, vous pouvez générer un fichier de paramètres Bicep dans un fichier de paramètres JSON. Pour plus d’informations, consultez Créer un fichier de paramètres.
Déployer le fichier Bicep avec le fichier de paramètres
Azure CLI
À partir d’Azure CLI, vous pouvez transmettre un fichier de paramètres avec votre déploiement de fichiers Bicep.
Vous pouvez déployer un fichier Bicep à l’aide d’un fichier de paramètres Bicep avec Azure CLI version 2.53.0 ou ultérieure et Cli Bicep version 0.22.X ou ultérieure. Avec l’instruction using
dans le fichier de paramètres Bicep, il n’est pas nécessaire de fournir le commutateur --template-file
lors de la spécification d’un fichier de paramètres Bicep pour le commutateur --parameters
.
az deployment group create \
--name ExampleDeployment \
--resource-group ExampleGroup \
--parameters storage.bicepparam
Vous pouvez utiliser des paramètres inclus et un fichier de paramètres d’emplacement pendant la même opération de déploiement. Par exemple :
az deployment group create \
--name ExampleDeployment \
--resource-group ExampleGroup \
--parameters storage.bicepparam \
--parameters storageAccountType=Standard_LRS
Pour plus d'informations, consultez Déployer des ressources à l'aide de Bicep et d'Azure CLI.
Azure PowerShell
À partir de Azure PowerShell, transmettez un fichier de paramètres local à l'aide du paramètre TemplateParameterFile
.
New-AzResourceGroupDeployment `
-Name ExampleDeployment `
-ResourceGroupName ExampleResourceGroup `
-TemplateFile C:\MyTemplates\storage.bicep `
-TemplateParameterFile C:\MyTemplates\storage.bicepparam
Vous pouvez utiliser des paramètres inclus et un fichier de paramètres d’emplacement pendant la même opération de déploiement. Par exemple :
New-AzResourceGroupDeployment `
-Name ExampleDeployment `
-ResourceGroupName ExampleResourceGroup `
-TemplateFile C:\MyTemplates\storage.bicep `
-TemplateParameterFile C:\MyTemplates\storage.bicepparam `
-storageAccountType Standard_LRS
Pour plus d'informations, consultez Déployer des ressources à l'aide de Bicep et d'Azure PowerShell. Pour déployer des fichiers Bicep, vous avez besoin d’Azure PowerShell version 5.6.0 ou ultérieure.
Priorité des paramètres
Vous pouvez utiliser des paramètres inclus et un fichier de paramètres local pendant la même opération de déploiement. Par exemple, vous pouvez spécifier certaines valeurs dans le fichier de paramètres local et ajouter d’autres valeurs incluses pendant le déploiement. Si vous fournissez des valeurs pour un paramètre à la fois dans le fichier de paramètres local et inclus, la valeur incluse est prioritaire.
Bien que les fichiers de paramètres Bicep externes ne soient actuellement pas pris en charge, il est possible d’utiliser un fichier de paramètres JSON externe en fournissant l’URI au fichier. Lorsque vous utilisez un fichier de paramètres externes, fournissez toutes les valeurs de paramètre dans le fichier externe, car vous ne pouvez pas transmettre d’autres valeurs inline ou à partir d’un fichier local, et tous les paramètres inline sont ignorés.
Conflits de noms de paramètre
Si votre fichier Bicep inclut un paramètre utilisant le même nom que l'un des paramètres de la commande PowerShell, PowerShell présente le paramètre de votre fichier Bicep avec le suffixe FromTemplate
. Par exemple, un paramètre nommé ResourceGroupName
dans votre fichier Bicep est en conflit avec le paramètre ResourceGroupName
dans la cmdlet New-AzResourceGroupDeployment. Vous êtes invité à fournir une valeur pour ResourceGroupNameFromTemplate
. Pour éviter cette confusion, utilisez des noms de paramètres qui ne sont pas utilisés pour les commandes de déploiement.
Étapes suivantes
- Pour plus d'informations sur la définition des paramètres dans un fichier Bicep, consultez Paramètres dans Bicep.
- Pour obtenir des valeurs sensibles, consultez Utiliser Azure Key Vault pour transmettre une valeur de paramètre sécurisée pendant le déploiement.