Partager via


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é :

Capture d’écran de l’invite des paramètres disponibles.

Lorsque vous pointez sur un nom de param, vous pouvez voir le type de données et la description du paramètre.

Capture d’écran du type et de la description de la donnée 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