Konfigurieren Ihrer Bicep-Umgebung
Bicep unterstützt eine optionale Konfigurationsdatei namens bicepconfig.json
. In dieser Datei können Sie Werte hinzufügen, die Ihre Bicep-Entwicklungserfahrung anpassen. Diese Datei wird mit der Standardkonfigurationsdateizusammengeführt. Weitere Informationen finden Sie unter Grundlegendes zum Zusammenführungsprozess. Um die Konfiguration anzupassen, erstellen Sie eine Konfigurationsdatei im selben Verzeichnis oder in einem übergeordneten Verzeichnis Ihrer Bicep-Dateien. Wenn mehrere übergeordnete Verzeichnisse vorhanden sind, die bicepconfig.json
Dateien enthalten, verwendet Bicep die Konfiguration vom nächstgelegenen Verzeichnis. Weitere Informationen finden Sie unter Grundlegendes zum Zusammenführungsprozess.
Informationen zum Konfigurieren von Bicep-Erweiterungseinstellungen finden Sie unter VS Code und Bicep-Erweiterung.
Erstellen der Konfigurationsdatei in Visual Studio Code
Sie können die Konfigurationsdatei mithilfe eines beliebigen Text-Editors erstellen.
Öffnen Sie zum Erstellen einer bicepconfig.json
-Datei in Visual Studio Code die Befehlspalette ([STRG/BEFEHL]+[UMSCHALT]+P), und wählen Sie dann Bicep: Bicep-Konfigurationsdatei erstellen aus. Weitere Informationen finden Sie unterErstellen einer Bicep-Konfigurationsdatei.
Die Bicep-Erweiterung für Visual Studio Code unterstützt IntelliSense für Ihre bicepconfig.json
-Datei. Verwenden Sie IntelliSense, um verfügbare Eigenschaften und Werte zu erkunden.
Grundlegendes zum Zusammenführungsprozess
Die bicepconfig.json
Datei wird einem rekursiven progressiven Zusammenführungsprozess mit der Standardkonfigurationsdatei unterzogen. Während des Zusammenführens untersucht Bicep jeden Pfad in beiden Konfigurationen. Wenn ein Pfad in der Standardkonfiguration nicht vorhanden ist, werden der Pfad und der zugehörige Wert im Endergebnis hinzugefügt. Wenn in der Standardkonfiguration ein Pfad mit einem anderen Wert vorhanden ist, hat der Wert aus bicepconfig.json
Vorrang im zusammengeführten Ergebnis.
Betrachten Sie ein Szenario, in dem die Standardkonfiguration wie folgt definiert ist:
{
"cloud": {
...
"credentialPrecedence": [
"AzureCLI",
"AzurePowerShell"
]
},
"moduleAliases": {
"ts": {},
"br": {
"public": {
"registry": "mcr.microsoft.com",
"modulePath": "bicep"
}
}
},
...
}
Und bicepconfig.json
ist wie folgt definiert:
{
"cloud": {
"credentialPrecedence": [
"AzurePowerShell",
"AzureCLI"
]
},
"moduleAliases": {
"br": {
"ContosoRegistry": {
"registry": "contosoregistry.azurecr.io"
},
"CoreModules": {
"registry": "contosoregistry.azurecr.io",
"modulePath": "bicep/modules/core"
}
}
}
}
Die resultierende zusammengeführte Konfiguration wäre:
{
"cloud": {
...
"credentialPrecedence": [
"AzurePowerShell",
"AzureCLI"
]
},
"moduleAliases": {
"ts": {},
"br": {
"public": {
"registry": "mcr.microsoft.com",
"modulePath": "bicep"
},
"ContosoRegistry": {
"registry": "contosoregistry.azurecr.io"
},
"CoreModules": {
"registry": "contosoregistry.azurecr.io",
"modulePath": "bicep/modules/core"
}
}
},
...
}
Im vorherigen Beispiel wird der Wert von cloud.credentialPrecedence
ersetzt, während der Wert von cloud.moduleAliases.ContosoRegistry
und cloud.moduleAliases.CoreModules
in der zusammengeführten Konfiguration angefügt werden.
Grundlegendes zum Prozess der Dateiauflösung
Die bicepconfig.json
-Datei kann in demselben Verzeichnis oder einem übergeordneten Verzeichnis Ihrer Bicep-Dateien platziert werden. Wenn mehrere übergeordnete Verzeichnisse vorhanden sind, die bicepconfig.json
Dateien enthalten, verwendet Bicep die Konfigurationsdatei vom nächstgelegenen Verzeichnis. Beispielsweise in der angegebenen Ordnerstruktur, in der jeder Ordner über eine bicepconfig.json
-Datei verfügt:
Wenn Sie main.bicep
im Ordner child
kompilieren, wird die bicepconfig.json
Datei im Ordner child
verwendet. Die Konfigurationsdateien im Ordner parent
und der Ordner root
werden ignoriert. Wenn der Ordner child
keine Konfigurationsdatei enthält, sucht Bicep im Ordner parent
nach einer Konfiguration und dann nach dem root
Ordner. Wenn keine Konfigurationsdatei in einem der Ordner gefunden wird, verwendet Bicep standardmäßig die Standardwerte.
Im Kontext einer Bicep-Datei, die mehrere Module aufruft, wird jedes Modul mit dem nächstgelegenen bicepconfig.json
kompiliert. Anschließend wird die Bicep-Hauptdatei mit der entsprechenden bicepconfig.json
kompiliert. Im folgenden Szenario wird modA.bicep
mithilfe der im Ordner A
gespeicherten bicepconfig.json
kompiliert, modB.bicep
wird mit der bicepconfig.json
im Ordner B
kompiliert, und schließlich wird main.bicep
mithilfe der bicepconfig.json
im Ordner root
kompiliert.
Wenn keine bicepconfig.json
Datei in den Ordnern A
und B
vorhanden ist, werden alle drei Bicep-Dateien mithilfe der im Ordner root
gefundenen bicepconfig.json
kompiliert. Wenn bicepconfig.json
in keinem der Ordner vorhanden ist, verwendet der Kompilierungsprozess standardmäßig die Standardwerte.
Konfigurieren von Bicep-Modulen
Bei der Arbeit mit Modulen können Sie Aliase für Modulpfade hinzufügen. Diese Aliase vereinfachen Ihre Bicep-Datei, da Sie keine komplizierten Pfade wiederholen müssen. Sie können auch die Rangfolge von Cloudprofil und Anmeldeinformationen für die Authentifizierung bei Azure über die Bicep-Befehlszeilenschnittstelle und Visual Studio Code konfigurieren. Die Anmeldeinformationen werden verwendet, um Module in Registrierungen zu veröffentlichen und externe Module im lokalen Cache wiederherzustellen, wenn die Funktion „Ressource einfügen“ verwendet wird. Weitere Informationen finden Sie unter Hinzufügen von Moduleinstellungen zur Bicep-Konfiguration.
Konfigurieren von Linter-Regeln
Der Bicep-Linter überprüft Bicep-Dateien auf Syntaxfehler und Verstöße gegen bewährte Methoden. Sie können die Standardeinstellungen für die Bicep-Dateiüberprüfung überschreiben, indem Sie bicepconfig.json
ändern. Weitere Informationen finden Sie unter Hinzufügen von Lintereinstellungen zur Bicep-Konfiguration.
Aktivieren experimenteller Features
Sie können experimentelle Features aktivieren, indem Sie der Datei bicepconfig.json
den folgenden Abschnitt hinzufügen. Die Verwendung experimenteller Funktionen aktiviert automatisch die Codegenerierung für die Sprachversion 2.0.
Hier ist ein Beispiel für die Aktivierungsfunktionen „assertions“ und „testFramework“.
{
"experimentalFeaturesEnabled": {
"assertions": true,
"testFramework": true
}
}
Informationen zu den aktuellen experimentellen Features finden Sie unter Experimentelle Features.