Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Med Bicep-parameterfiler kan du definiera värden i en enskild fil som sedan skickas till filen main.bicep . Parameterfilen exponerar värden som kan ändras från en viss prenumeration, miljö och/eller region. Att använda en parameterfil skapar enhetlighet i dina IaC-distributioner samtidigt som den ger flexibilitet. En del av den här flexibiliteten kan göra det möjligt för en organisation att dra nytta av kostnadsfördelar genom att rätt storleksanpassa sina icke-produktionsmiljöer samtidigt som samma kärninfrastruktur bibehålls.
Dessa parameterfiler hjälper också till att aktivera en effektiv CI/CD-distributionsmetod. Varje parameterfil är under källkontroll och skickas till lämpliga automatiserade distributionssteg. Dessa parameterfiler säkerställer en konsekvent distributionsupplevelse.
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.
Anteckning
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. Funktionen using none stöds i Bicep CLI version 0.31.0 eller senare.
En enda Bicep-fil kan associeras med flera parameterfiler. Varje parameterfil är dock vanligtvis länkad till en specifik Bicep-fil , såvida inte using none anges. Den här associationen upprättas med hjälp av -instruktionenusing i 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.
Parametrarfil
En parameterfil använder följande format:
using '<path>/<file-name>.bicep' | using none
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 -instruktionen using none för att ange att parameterfilen inte är kopplad till en specifik Bicep-mall under redigering eller kompilering. Detta frikopplar parameterfilen från en viss mall, vilket ger större flexibilitet i hur parametrar definieras och används i olika distributioner. Mer information finns i att använda 'none'-uttrycket.
Du kan använda uttryck som parametervärden. 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
}
Anteckning
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. För mer information, se Använd 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å parametrar-avsnittet 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 parameterfilen
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 Azure PowerShell. För att distribuera .bicep filer behöver du Azure PowerShell version 5.6.0 eller senare.
Parameterprioritet
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 både i den lokala filen och direkt, har det direkta 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.