Kommentar
Å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 parametervärden i en separat fil och skicka dem till filen main.bicep. De är perfekta för värden som varierar beroende på prenumeration, miljö eller region.
Viktiga fördelar är:
- Upprätthåll enhetlighet i Infrastructure as Code-driftsättningar (IaC) samtidigt som flexibiliteten bibehålls.
- Stöd för kostnadsoptimering, till exempel rätt storleksändring av icke-produktionsmiljöer utan att ändra kärninfrastrukturen.
- Aktivera effektiva CI/CD-pipelines genom att hålla parameterfilerna i källkontroll och skicka lämplig fil till varje distributionssteg.
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.
Du kan använda något av följande:
- En inbyggd Bicep-parameterfil med filnamnstillägget .bicepparam, eller
- En vanlig JSON-parameterfil.
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.
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å dekompilera en JSON-parameterfil till en Bicep-parameterfil. Mer information finns i decompile-params.
Varning
En parameterfil sparar parametervärden som oformaterad text. Av säkerhetsskäl ska du inte använda 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 behåller du 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.
Definiera parameterfil
En parameterfil använder följande format:
using '<path>/<file-name>.bicep' | using none
extends '<path>/<file-name>.bicepparam'
type <user-defined-data-type-name> = <type-expression>
var <variable-name> <data-type> = <variable-value>
import {<symbol_name> [as <alias_name>], ...} from '<bicep_file_name>'
param <first-parameter-name> = <first-value>
param <second-parameter-name> = <second-value>
param <third-parameter-name> = <variable-name>
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'
I parameterfilen använder du namnet på varje parameter. Parameternamnen i parameterfilen måste matcha parameternamnen i Bicep-filen.
using 'main.bicep'
param storagePrefix
param storageAccountType
Instruktionen using länkar Bicep-parameterfilen till en Bicep fil. Du kan associera flera parameterfiler med en enda Bicep fil. Varje parameterfil länkar vanligtvis till en specifik Bicep fil med hjälp av instruktionen using.
Använd using none om du inte vill länka parameterfilen till en viss Bicep fil.
Bicep CLI version 0.31.0 eller senare stöder funktionen using none.
Mer information finns i Använda -instruktion.
-instruktionen extends ärver parametrar från en basfil .bicepparam , vilket gör att parametervärden kan återanvändas och selektivt åsidosättas i den aktuella parameterfilen. Mer information finns i Utökade parameterfiler.
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 behöver du 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'
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'
}
Använd Bicep-syntax för att deklarera objekt och matriser.
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
}
Du kan definiera användardefinierade datatyper. Till exempel:
using './main.bicep'
// Define a reusable type for tags with optional properties
type TagValues = {
environment: 'dev' | 'test' | 'production'
project: string
}
var tagsExample TagValues = {
environment: 'dev'
project: 'bicep-sample'
}
param tags = tagsExample
Du kan också importera variabler, användardefinierade datatyper och användardefinierade funktioner från en Bicep fil. Mer information finns i Importera.
Fil med utökningsbara parametrar
Mer information finns i Utöka parameterfilen.
Generera och skapa 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.
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
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.
I följande exempel visas ett Azure CLI exempel för att använda en extern JSON-parameterfil:
az deployment group create \
--resource-group my-rg \
--template-file main.bicep \
--parameters https://storageaccount.blob.core.windows.net/templates/main.parameters.json
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. Genom att använda 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.
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.