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.

Screenshot of how to create Bicep configuration file in VS Code.

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.

Screenshot of the intellisense support in configuring 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"
      }
    }
  },
  ...
}

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:

A diagram showing resolving `bicepconfig.json` found in multiple parent folders.

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.jsonkompiliert. 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.

A diagram showing resolving `bicepconfig.json` found in multiple parent folders with the module scenario.

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.

Hier sehen Sie ein Beispiel für die Aktivierung der Features „compileTimeImports“ und „userDefinedFunctions“.

{
  "experimentalFeaturesEnabled": {
    "compileTimeImports": true,
    "userDefinedFunctions": true
  }
}

Informationen zu den aktuellen experimentellen Features finden Sie unter Experimentelle Features.

Nächste Schritte