Skapa en parameterfil för Bicep-distribution
Den här artikeln visar hur du skapar en parameterfil som du kan använda i stället för att skicka parametrar som infogade värden i skriptet. Du kan använda antingen en Bicep-parameterfil med filnamnstillägget .bicepparam
eller en JSON-parameterfil som innehåller parametervärdet.
Kommentar
Bicep-parameterfiler stöds endast i Bicep CLI version 0.18.4 eller senare, Azure CLI version 2.47.0 eller senare och Azure PowerShell version 9.7.1 eller senare.
En enda Bicep-fil kan ha flera Bicep-parameterfiler associerade med den. Varje Bicep-parameterfil är dock avsedd för en viss Bicep-fil. Du kan upprätta den här relationen genom att använda -instruktionen using
i Bicep-parameterfilen.
Du kan kompilera Bicep-parameterfiler till JSON-parameterfiler som du kan distribuera med hjälp av en Bicep-fil. Mer information finns i build-params
. Du kan också dela upp en JSON-parameterfil i en Bicep-parameterfil. Mer information finns i decompile-params
.
Parameterfil
En parameterfil använder följande format:
using '<path>/<file-name>.bicep'
param <first-parameter-name> = <first-value>
param <second-parameter-name> = <second-value>
Du kan använda -instruktionen using
med hjälp av en Bicep-fil, JSON Azure Resource Manager-mallar, Bicep-moduler och mallspecifikationer. Till exempel:
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'
...
Mer information finns i Använda -instruktion.
Du kan använda uttryck med standardvärdet. Till exempel:
using 'main.bicep'
param storageName = toLower('MyStorageAccount')
param intValue = 2 + 2
Du kan referera till miljövariabler som parametervärden. Till exempel:
using './main.bicep'
param intFromEnvironmentVariables = int(readEnvironmentVariable('intEnvVariableName'))
Du kan definiera och använda variabler. Du måste använda Bicep CLI version 0.21.X eller senare för att kunna använda variabler i .bicepparam
filer. Se följande exempel:
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
}
Kommentar
En parameterfil sparar parametervärden som oformaterad text. Av säkerhetsskäl rekommenderar vi inte att du använder den här metoden med känsliga värden som lösenord.
Om du behöver skicka en parameter med ett känsligt värde bör du behålla värdet i ett nyckelvalv. I stället för att lägga till ett känsligt värde i parameterfilen använder du getSecret
funktionen för att hämta den. Mer information finns i Använda Azure Key Vault för att skicka en hemlighet som en parameter under Bicep-distributionen.
Format för parametertyper
I följande exempel visas formaten för olika parametertyper: sträng, heltal, boolesk, matris och objekt.
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'
}
Filnamn
Filnamnstillägget för en Bicep-parameterfil är .bicepparam
.
Om du vill distribuera till flera miljöer skapar du fler än en parameterfil. När du använder flera parameterfiler ska du märka dem enligt deras användning. Om du till exempel vill distribuera resurser använder du etiketten main.dev.bicepparam för utveckling och etiketten main.prod.bicepparam för produktion.
Definiera parametervärden
Om du vill ta reda på hur du definierar parameternamn och värden öppnar du Bicep-filen. Titta på avsnittet parametrar i Bicep-filen. I följande exempel visas parametrarna från en Bicep-fil med namnet main.bicep
:
@maxLength(11)
param storagePrefix string
@allowed([
'Standard_LRS'
'Standard_GRS'
'Standard_ZRS'
'Premium_LRS'
])
param storageAccountType string = 'Standard_LRS'
Leta efter namnet på varje parameter i parameterfilen. Parameternamnen i parameterfilen måste matcha parameternamnen i Bicep-filen.
using 'main.bicep'
param storagePrefix
param storageAccountType
Instruktionen using
kopplar Bicep-parameterfilen till en Bicep-fil. Mer information finns i Använda -instruktion.
När du skriver nyckelordet param
i Visual Studio Code uppmanas du att ange tillgängliga parametrar och deras beskrivningar från den länkade Bicep-filen.
När du hovra över ett param
namn kan du se parameterdatatypen och beskrivningen.
Granska parametertypen eftersom parametertyperna i parameterfilen måste använda samma typer som din Bicep-fil. I det här exemplet är båda parametertyperna strängar:
using 'main.bicep'
param storagePrefix = ''
param storageAccountType = ''
Kontrollera Bicep-filen efter parametrar som innehåller ett standardvärde. Om en parameter har ett standardvärde kan du ange ett värde i parameterfilen, men det krävs inte. Parameterfilens värde åsidosätter Bicep-filens standardvärde.
using 'main.bicep'
param storagePrefix = '' // This value must be provided.
param storageAccountType = '' // This value is optional. Bicep uses default value if not provided.
Om du vill se om det finns några begränsningar som maximal längd kontrollerar du Bicep-filens tillåtna värden. De tillåtna värdena anger det värdeintervall som du kan ange för en parameter. I det här exemplet storagePrefix
kan ha högst 11 tecken och storageAccountType
måste ange ett tillåtet värde.
using 'main.bicep'
param storagePrefix = 'storage'
param storageAccountType = 'Standard_ZRS'
Generera parameterfil
Du kan skapa en parameterfil med antingen Visual Studio Code eller Bicep CLI. Med båda verktygen kan du använda en Bicep-fil för att generera en parameterfil. Se Generera parameterfil för Visual Studio Code-metoden och generera parameterfilen för Bicep CLI-metoden.
Skapa Bicep-parameterfil
Från Bicep CLI kan du skapa en Bicep-parameterfil till en JSON-parameterfil. Mer information finns i Skapa parameterfil.
Distribuera Bicep-fil med parameterfilen
Azure CLI
Från Azure CLI kan du skicka en parameterfil med din Bicep-fildistribution.
Du kan distribuera en Bicep-fil med hjälp av en Bicep-parameterfil med Azure CLI version 2.53.0 eller senare och Bicep CLI version 0.22.X eller senare. Med -instruktionen using
i Bicep-parameterfilen behöver du inte ange växeln --template-file
när du anger en Bicep-parameterfil för växeln --parameters
.
az deployment group create \
--name ExampleDeployment \
--resource-group ExampleGroup \
--parameters storage.bicepparam
Du kan använda infogade parametrar och en platsparametrarfil i samma distributionsåtgärd. Till exempel:
az deployment group create \
--name ExampleDeployment \
--resource-group ExampleGroup \
--parameters storage.bicepparam \
--parameters storageAccountType=Standard_LRS
Mer information finns i Distribuera Bicep-filer med hjälp av Azure CLI.
Azure PowerShell
Från Azure PowerShell skickar du en lokal parameterfil med hjälp av parametern TemplateParameterFile
.
New-AzResourceGroupDeployment `
-Name ExampleDeployment `
-ResourceGroupName ExampleResourceGroup `
-TemplateFile C:\MyTemplates\storage.bicep `
-TemplateParameterFile C:\MyTemplates\storage.bicepparam
Du kan använda infogade parametrar och en platsparametrarfil i samma distributionsåtgärd. Till exempel:
New-AzResourceGroupDeployment `
-Name ExampleDeployment `
-ResourceGroupName ExampleResourceGroup `
-TemplateFile C:\MyTemplates\storage.bicep `
-TemplateParameterFile C:\MyTemplates\storage.bicepparam `
-storageAccountType Standard_LRS
Mer information finns i Distribuera Bicep-filer med hjälp av Azure PowerShell. För att distribuera .bicep
filer behöver du Azure PowerShell version 5.6.0 eller senare.
Parameterpriorence
Du kan använda infogade parametrar och en lokal parameterfil i samma distributionsåtgärd. Du kan till exempel ange vissa värden i filen med lokala parametrar och lägga till andra värden infogade under distributionen. Om du anger värden för en parameter i både den lokala parameterfilen och infogade värden har det infogade värdet företräde.
Även om externa Bicep-parameterfiler för närvarande inte stöds kan du använda en extern JSON-parameterfil genom att ange URI:n för filen. När du använder en extern parameterfil anger du alla parametervärden i den externa filen. När du använder en extern fil kan du inte skicka andra värden infogade eller från en lokal fil, och alla infogade parametrar ignoreras.
Parameternamnkonflikter
Om Bicep-filen innehåller en parameter med samma namn som en av parametrarna i Azure PowerShell-kommandot, presenterar Azure PowerShell parametern från Bicep-filen med postfixet FromTemplate
. Om en parameter med namnet ResourceGroupName
i Bicep-filen till exempel står i konflikt med parametern ResourceGroupName
i cmdletenNew-AzResourceGroupDeployment
uppmanas du att ange ett värde för .ResourceGroupNameFromTemplate
Undvik den här förvirringen genom att använda parameternamn som inte används för distributionskommandon.
Relaterat innehåll
- Mer information om hur du definierar parametrar i en Bicep-fil finns i Parametrar i Bicep.
- Information om hur du hämtar känsliga värden finns i Använda Azure Key Vault för att skicka säkert parametervärde under distributionen.