Skapa parameterfiler för Bicep-distribution
I stället för att skicka parametrar som infogade värden i skriptet kan du använda en Bicep-parameterfil med filnamnstillägget .bicepparam
eller en JSON-parameterfil som innehåller parametervärdena. Den här artikeln visar hur du skapar parameterfiler.
Kommentar
Bicep-parameterfilen 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. Den här relationen upprättas med hjälp av -instruktionen using
i Bicep-parameterfilen.
Du kan kompilera Bicep-parameterfiler till JSON-parameterfiler för distribution med en Bicep-fil. Se build-params. Du kan också dela upp en JSON-parameterfil i en Bicep-parameterfil. Se 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 Bicep-fil, ARM JSON-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 using-instruktionen.
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. Bicep CLI version 0.21.X eller senare krävs för att använda variabler i .bicepparam-filen. Nedan följer några 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
}
Det är värt att notera att parameterfilen sparar parametervärden som oformaterad text. Av säkerhetsskäl rekommenderas inte den här metoden för känsliga värden som lösenord. Om du måste skicka en parameter med ett känsligt värde behåller du värdet i ett nyckelvalv. I stället för att lägga till det känsliga värdet i parameterfilen använder du funktionen getSecret för att hämta det. Mer information finns i Använda Azure Key Vault för att skicka säkert parametervärde 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
Bicep-parameterfilen har filnamnstillägget .bicepparam
.
Om du vill distribuera till olika miljöer skapar du fler än en parameterfil. När du namnger parameterfilerna identifierar du deras användning, till exempel utveckling och produktion. Använd till exempel main.dev.bicepparam och main.prod.bicepparam för att distribuera resurser.
Definiera parametervärden
Om du vill fastställa 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'
I parameterfilen är den första informationen som ska märkas namnet på varje parameter. 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 har skrivit 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 hovrar över ett paramnamn kan du se parameterdatatypen och beskrivningen.
Observera parametertypen. 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 med 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 will use default value if not provided.
Kontrollera Biceps tillåtna värden och eventuella begränsningar, till exempel maximal längd. Dessa värden 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
För att generera en parameterfil har du två alternativ: antingen via Visual Studio Code eller med hjälp av Bicep CLI. Med båda metoderna kan du härleda parameterfilen från en Bicep-fil. Från Visual Studio Code, se Generera parameterfil. Från Bicep CLI, se Generera parameterfil.
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.
Med Azure CLI version 2.53.0 eller senare och Bicep CLI version 0.22.X eller senare kan du distribuera en Bicep-fil genom att använda en Bicep-parameterfil. 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 resurser med Bicep och 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 resurser med Bicep och 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.
Du kan använda en extern JSON-parameterfil genom att ange URI:n för filen. Den externa Bicep-parameterfilen stöds inte för närvarande. När du använder en extern parameterfil kan du inte skicka andra värden antingen infogade eller från en lokal fil. Alla infogade parametrar ignoreras. Ange alla parametervärden i den externa filen.
Parameternamnkonflikter
Om Bicep-filen innehåller en parameter med samma namn som en av parametrarna i PowerShell-kommandot presenterar PowerShell parametern från Bicep-filen med postfixet FromTemplate
. En parameter med namnet ResourceGroupName
i Bicep-filen står till exempel i konflikt med parametern ResourceGroupName
i cmdleten New-AzResourceGroupDeployment . Du uppmanas 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.
Nästa steg
- 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.