Teilen über


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 eine 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 aus dem nächstgelegenen Verzeichnis. Weitere Informationen finden Sie unter Grundlegendes zum Zusammenführungsprozess.

Informationen zum Konfigurieren von Bicep-Erweiterungseinstellungen finden Sie unter Visual Studio Code und die 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.

Screenshot: Erstellen einer Bicep-Konfigurationsdatei in Visual Studio Code

Die Bicep-Erweiterung für Visual Studio Code unterstützt IntelliSense für bicepconfig.json-Dateien. Verwenden Sie IntelliSense, um verfügbare Eigenschaften und Werte zu erkunden.

Screenshot: IntelliSense mit Unterstützung der Konfiguration für die Datei „bicepconfig.json“

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"
      }
    }
  },
  ...
}

Die bicepconfig.json-Datei 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 die Werte 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 aus dem nächstgelegenen Verzeichnis, beispielsweise in der angegebenen Ordnerstruktur, in der jeder Ordner über eine bicepconfig.json-Datei verfügt:

Diagramm: Auflösung einer bicepconfig.json-Datei, die in mehreren übergeordneten Ordnern gefunden wurde

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 der nächstgelegenen bicepconfig.json-Datei kompiliert. Anschließend wird die Bicep-Hauptdatei mit der entsprechenden bicepconfig.json-Datei kompiliert. Im folgenden Szenario wird modA.bicep mithilfe der im Ordner A gespeicherten bicepconfig.json-Datei kompiliert. Außerdem wird modB.bicep mit der bicepconfig.json-Datei im Ordner B kompiliert, und schließlich wird main.bicep mithilfe der bicepconfig.json-Datei im Ordner root kompiliert.

Diagramm: bicepconfig.json-Datei, die in mehreren übergeordneten Ordnern mit dem Modulszenario gefunden wurde

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-Datei kompiliert. Wenn bicepconfig.json in keinem der Ordner vorhanden ist, werden bei der Kompilierung standardmäßig die Standardwerte verwendet.

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 bicepconfig.json-Datei ändern, um die Standardeinstellungen für die Überprüfung einer Bicep-Datei zu überschreiben. Weitere Informationen finden Sie unter Hinzufügen von Lintereinstellungen zur Bicep-Konfiguration.

Aktivieren experimenteller Features

Sie können experimentelle Features aktivieren, indem Sie der bicepconfig.json-Datei 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
  }
}

Weitere Informationen zu den experimentellen Bicep-Features finden Sie unter Experimentelle Features.

Nächste Schritte