Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Mit Bicep-Parameterdateien können Sie Parameterwerte in einer separaten Datei definieren und an Ihre main.bicep-Datei übergeben. Sie sind perfekt für Werte geeignet, die je nach Abonnement, Umgebung oder Region variieren.
Die wichtigsten Vorteile umfassen Folgendes:
- Sorgen Sie für Konsistenz zwischen Infrastruktur und Code (IaC)-Bereitstellungen, während Sie Flexibilität ermöglichen.
- Unterstützen Sie die Kostenoptimierung, z. B. die Größenanpassung von Nichtproduktionsumgebungen, ohne die Kerninfrastruktur zu ändern.
- Aktivieren Sie optimierte CI/CD-Pipelines, indem Sie Parameterdateien in der Quellcodeverwaltung beibehalten und die entsprechende Datei an jede Bereitstellungsphase übergeben.
Hinweis
Bicep-Parameterdateien werden nur in Bicep CLI Version 0.18.4 oder höher, Azure CLI Version 2.47.0 oder höher und Azure PowerShell Version 9.7.1 oder höher unterstützt.
Sie können Folgendes verwenden:
- Eine native Bicep-Parameterdatei (.bicepparam-Erweiterung), oder
- Eine JSON-Standardparameterdatei.
Die Dateierweiterung für eine Bicep-Parameterdatei ist .bicepparam.
Erstellen Sie mehrere Parameterdatei, um sie in mehreren Umgebungen bereitzustellen. Wenn Sie mehrere Parameterdateien verwenden, bezeichnen Sie sie entsprechend ihrer Verwendung. Verwenden Sie beispielsweise bei der Bereitstellung von Ressourcen die Bezeichnung main.dev.bicepparam für die Entwicklung und die Bezeichnung main.prod.bicepparam für die Produktion.
Sie können Bicep Parameterdateien in JSON-Parameterdateien kompilieren, die Sie mithilfe einer Bicep Datei bereitstellen können. Weitere Informationen finden Sie unter build-params. Sie können auch eine JSON-Parameterdatei in eine Bicep Parameterdatei dekompilieren. Weitere Informationen finden Sie unter decompile-params.
Warning
Eine Parameterdatei speichert Parameterwerte als Nur-Text. Verwenden Sie aus Sicherheitsgründen diesen Ansatz nicht mit vertraulichen Werten wie Kennwörtern. Wenn Sie einen Parameter mit einem vertraulichen Wert übergeben müssen, speichern Sie den Wert in einem Schlüsselspeicher. Anstatt den vertraulichen Wert Ihrer Parameterdatei hinzuzufügen, verwenden Sie die getSecret-Funktion, um ihn abzurufen. Weitere Informationen finden Sie unter Verwenden von Azure Key Vault zum Übergeben eines Geheimnisses als Parameter während der Bicep-Bereitstellung.
Parameterdatei definieren
Eine Parameterdatei verwendet das folgende 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>
Um zu bestimmen, wie die Parameternamen und -werte definiert werden, öffnen Sie Ihre Bicep-Datei. Sehen Sie sich den Abschnitt parameters in der Bicep-Datei an. Die folgenden Beispiele zeigen die Parameter aus einer Bicep-Datei namens main.bicep:
@maxLength(11)
param storagePrefix string
@allowed([
'Standard_LRS'
'Standard_GRS'
'Standard_ZRS'
'Premium_LRS'
])
param storageAccountType string = 'Standard_LRS'
Verwenden Sie in der Parameterdatei den Namen der einzelnen Parameter. Der Parameternamen in der Parameterdatei müssen mit den Parameternamen in der Bicep-Datei identisch sein.
using 'main.bicep'
param storagePrefix
param storageAccountType
Die using-Anweisung verknüpft die Bicep Parameterdatei mit einer Bicep Datei. Sie können mehrere Parameterdateien einer einzelnen Bicep Datei zuordnen. Jede Parameterdatei verknüpft in der Regel mit einer bestimmten Bicep Datei mithilfe der using-Anweisung.
Verwenden Sie using none, wenn Sie die Parameterdatei nicht mit einer bestimmten Bicep Datei verknüpfen möchten.
Bicep CLI Version 0.31.0 oder höher unterstützt das Feature using none.
Weitere Informationen finden Sie unter Using-Anweisung.
Die extends Anweisung erbt Parameter aus einer Basisdatei .bicepparam , sodass Parameterwerte wiederverwendet und selektiv in der aktuellen Parameterdatei überschrieben werden können. Weitere Informationen finden Sie unter Erweiterungsparameterdateien.
Wenn Sie das Schlüsselwort param in Visual Studio Code eingeben, werden Ihnen die verfügbaren Parameter und ihre Beschreibungen aus der verknüpften Bicep-Datei angezeigt.
Wenn Sie mit dem Mauszeiger auf einen param-Namen zeigen, können Sie den Parameterdatentyp und die Beschreibung sehen.
Überprüfen Sie den Parametertypen, da die Parametertypen in Ihrer Parameterdatei die gleichen Typen wie Ihre Bicep-Datei verwenden müssen. In diesem Beispiel sind beide Parametertypen Zeichenfolgen:
using 'main.bicep'
param storagePrefix = ''
param storageAccountType = ''
Überprüfen Sie die Bicep-Datei auf Parameter, die einen Standardwert enthalten. Wenn ein Parameter über einen Standardwert verfügt, können Sie einen Wert in der Parameterdatei angeben, aber sie müssen nicht. Der Wert der Parameterdatei überschreibt den Standardwert der Bicep-Datei.
using 'main.bicep'
param storagePrefix = '' // This value must be provided.
param storageAccountType = '' // This value is optional. Bicep uses default value if not provided.
Überprüfen Sie die zulässigen Werte der Bicep-Datei, um herauszufinden, ob Einschränkungen, z. B. eine Maximallänge, vorhanden sind. Die zulässigen Werte geben den Wertebereich an, den Sie für einen Parameter angeben können. In diesem Beispiel darf storagePrefix maximal 11 Zeichen enthalten, und storageAccountType muss einen zulässigen Wert angeben.
using 'main.bicep'
param storagePrefix = 'storage'
param storageAccountType = 'Standard_ZRS'
Das folgende Beispiel zeigt die Formate verschiedener Parametertypen: Zeichenfolge, ganze Zahl, Boolean, Array und 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'
}
Verwenden Sie die Bicep-Syntax, um Objekte und Arrays zu deklarieren.
Sie können Ausdrücke als Parameterwerte verwenden. Beispiel:
using './main.bicep'
param storageName = toLower('MyStorageAccount')
param intValue = 2 + 2
Sie können auf Umgebungsvariablen als Parameterwerte verweisen. Beispiel:
using './main.bicep'
param intFromEnvironmentVariables = int(readEnvironmentVariable('intEnvVariableName'))
Sie können Variablen definieren und verwenden. Sie müssen Bicep CLI Version 0.21.X oder höher für die Verwendung von Variablen in .bicepparam-Dateien verwenden. Hierzu folgende Beispiele:
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
}
Sie können benutzerdefinierte Datentypen definieren. Beispiel:
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
Sie können variablen, benutzerdefinierte Datentypen und Benutzerdefinierte Funktionen auch aus einer Bicep Datei importieren. Weitere Informationen finden Sie unter "Importieren".
Erweiterungsfähige Parameterdatei
Ausführliche Informationen finden Sie in der Datei "Parameter erweitern".
Datei für Generierungs- und Buildparameter
Sie können eine Parameterdatei entweder mit Visual Studio Code oder mit der Bicep CLI erstellen. Bei beiden Tools können Sie eine Bicep-Datei verwenden, um eine Parameterdatei zu generieren. Weitere Informationen zur Vorgehensweise in Visual Studio Code finden Sie unter Generieren von Parameterdateien und für die Bicep CLI unter Generieren von Parameterdateien.
Über die Bicep-CLI können Sie eine Bicep-Parameterdatei als JSON-Parameterdatei erstellen. Weitere Informationen finden Sie unter Erstellen einer Parameterdatei.
Bereitstellen der Bicep-Datei mit Parameterdatei
Sie können Inlineparameter und eine lokale Parameterdatei im selben Bereitstellungsvorgang verwenden. Sie können beispielsweise einige Werte in der lokalen Parameterdatei angeben und weitere Werte während der Bereitstellung inline hinzufügen. Wenn Sie Werte für einen Parameter sowohl in der lokalen Parameterdatei als auch inline bereitstellen, haben die Inlinewerte Vorrang.
Obwohl externe Bicep-Parameterdateien derzeit nicht unterstützt werden, ist möglich, eine externe JSON-Parameterdatei zu verwenden, indem Sie den URI der Datei bereitstellt. Wenn Sie eine externe Parameterdatei verwenden, geben Sie alle Parameterwerte in der externen Datei an. Wenn Sie eine externe Parameterdatei verwenden, können Sie keine anderen Werte (weder Inline-Werte noch Werte aus einer lokalen Datei) übergeben, und alle Inline-Parameter werden ignoriert.
Das folgende Beispiel zeigt ein Azure CLI Beispiel für die Verwendung einer externen JSON-Parameterdatei:
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
Über die Azure CLI können Sie eine Parameterdatei während Ihrer Bicep-Dateibereitstellung übergeben.
Ab der Azure CLI-Version 2.53.0 und der Bicep CLI-Version 0.22.X oder höher können Sie eine Bicep-Datei mithilfe einer Bicep-Parameterdatei bereitstellen. Wenn Sie die using-Anweisung in der Parameterdatei Bicep verwenden, müssen Sie die Option --template-file nicht angeben, wenn Sie eine Bicep Parameterdatei für die Option --parameters angeben.
az deployment group create \
--name ExampleDeployment \
--resource-group ExampleGroup \
--parameters storage.bicepparam
Sie können Inlineparameter und eine Standortparameterdatei im selben Bereitstellungsvorgang verwenden. Beispiel:
az deployment group create \
--name ExampleDeployment \
--resource-group ExampleGroup \
--parameters storage.bicepparam \
--parameters storageAccountType=Standard_LRS
Weitere Informationen finden Sie unter Bereitstellen von Bicep-Dateien mit der Azure CLI.
Azure PowerShell
Übergeben Sie in Azure PowerShell eine lokale Parameterdatei mithilfe des TemplateParameterFile-Parameters.
New-AzResourceGroupDeployment `
-Name ExampleDeployment `
-ResourceGroupName ExampleResourceGroup `
-TemplateFile C:\MyTemplates\storage.bicep `
-TemplateParameterFile C:\MyTemplates\storage.bicepparam
Sie können Inlineparameter und eine Standortparameterdatei im selben Bereitstellungsvorgang verwenden. Beispiel:
New-AzResourceGroupDeployment `
-Name ExampleDeployment `
-ResourceGroupName ExampleResourceGroup `
-TemplateFile C:\MyTemplates\storage.bicep `
-TemplateParameterFile C:\MyTemplates\storage.bicepparam `
-storageAccountType Standard_LRS
Weitere Informationen finden Sie unter Bereitstellen von Bicep-Dateien mit PowerShell. Zum Bereitstellen von .bicep-Dateien benötigen Sie Version 5.6.0 oder höher von Azure PowerShell.
Wenn Ihre Bicep-Datei einen Parameter enthält, der denselben Namen besitzt wie einer der Parameter des Azure PowerShell-Befehls, zeigt Azure PowerShell den Parameter der Bicep-Datei mit dem Postfix FromTemplate an. Wenn beispielsweise ein Parameter namens ResourceGroupName in Ihrer Bicep-Datei einen Konflikt mit dem Parameter ResourceGroupName im Cmdlet New-AzResourceGroupDeployment verursacht, werden Sie zur Eingabe eines Werts für ResourceGroupNameFromTemplate aufgefordert. Verwenden Sie Parameternamen, die nicht für Bereitstellungsbefehle verwendet werden, um diese Verwechslung zu vermeiden.
Verwandte Inhalte
- Weitere Informationen zum Definieren von Parametern in einer Bicep-Datei finden Sie unter Parameter in Bicep.
- Informationen zum Abrufen von vertraulichen Werten finden Sie unter Verwenden von Azure Key Vault zum Übergeben eines sicheren Parameterwerts während der Bereitstellung.