Hinzufügen von Moduleinstellungen in der Bicep-Konfigurationsdatei
In einer bicepconfig.json-Datei können Sie Aliasnamen für Modulpfade erstellen und die Priorität von Profilen und Anmeldeinformationen für die Veröffentlichung und Wiederherstellung von Modulen konfigurieren.
In diesem Artikel werden die Einstellungen beschrieben, die für die Arbeit mit Bicep-Modulen verfügbar sind.
Aliase für Module
Um den Pfad zum Verknüpfen mit Modulen zu vereinfachen, erstellen Sie Aliase in der Konfigurationsdatei. Ein Alias verweist entweder auf eine Modulregistrierung oder eine Ressourcengruppe, die Vorlagenspezifikationen enthält.
Die Konfigurationsdatei verfügt über eine Eigenschaft für moduleAliases
. Diese Eigenschaft enthält alle Aliase, die Sie definieren. Unter dieser Eigenschaft werden die Aliase basierend darauf aufgeteilt, ob sie auf eine Registrierung oder eine Vorlagenspezifikation verweisen.
Um einen Alias für eine Bicep-Registrierung zu erstellen, fügen Sie eine br
Eigenschaft hinzu. Um einen Alias für eine Vorlagenspezifikation hinzuzufügen, verwenden Sie die ts
Eigenschaft.
{
"moduleAliases": {
"br": {
<add-registry-aliases>
},
"ts": {
<add-template-specs-aliases>
}
}
}
Fügen Sie innerhalb der Eigenschaft br
so viele Aliase hinzu, wie benötigt. Geben Sie für jeden Alias einen Namen und die folgenden Eigenschaften ein:
- registry (erforderlich): Name des Registrierungsanmeldeservers.
- modulePath (optional): Registrierungsrepository, in dem die Module gespeichert werden.
Fügen Sie innerhalb der Eigenschaft ts
so viele Aliase hinzu, wie benötigt. Geben Sie für jeden Alias einen Namen und die folgenden Eigenschaften ein:
- subscription (erforderlich): Die Abonnement-ID, die die Vorlagenspezifikationen hostet.
- resourceGroup (erforderlich): Der Name der Ressourcengruppe, die die Vorlagenspezifikationen enthält.
Das folgende Beispiel zeigt eine Konfigurationsdatei, die zwei Aliase für eine Modulregistrierung definiert, und einen Alias für eine Ressourcengruppe, die Vorlagenspezifikationen enthält.
{
"moduleAliases": {
"br": {
"ContosoRegistry": {
"registry": "contosoregistry.azurecr.io"
},
"CoreModules": {
"registry": "contosoregistry.azurecr.io",
"modulePath": "bicep/modules/core"
}
},
"ts": {
"CoreSpecs": {
"subscription": "00000000-0000-0000-0000-000000000000",
"resourceGroup": "CoreSpecsRG"
}
}
}
}
Wenn Sie einen Alias im Modulverweis verwenden, müssen Sie diese Formate verwenden:
br/<alias>:<file>:<tag>
ts/<alias>:<file>:<tag>
Definieren Sie Ihre Aliase für den Ordner oder die Ressourcengruppe, der/die Module enthält, nicht für die Datei selbst. Der Dateiname muss im Verweis auf das Modul enthalten sein.
Ohne die Aliase würden Sie mit dem vollständigen Pfad eine Verknüpfung mit einem Modul in einer Registrierung herstellen.
module stgModule 'br:contosoregistry.azurecr.io/bicep/modules/core/storage:v1' = {
Mit den Aliasen können Sie den Link vereinfachen, indem Sie den Alias für die Registrierung verwenden.
module stgModule 'br/ContosoRegistry:bicep/modules/core/storage:v1' = {
Alternativ können Sie den Link vereinfachen, indem Sie den Alias verwenden, der die Registrierung und den Modulpfad angibt.
module stgModule 'br/CoreModules:storage:v1' = {
Verwenden Sie als Vorlagenspezifikation:
module stgModule 'ts/CoreSpecs:storage:v1' = {
Ein Alias wurde für öffentliche Module vordefiniert. Um auf ein öffentliches Modul zu verweisen, können Sie das folgende Format verwenden:
br/public:<file>:<tag>
Hinweis
Nicht-AVM-Module (Azure Verified Modules) werden aus der öffentlichen Modulregistrierung zurückgezogen. Die meisten sind als AVM-Module verfügbar.
Sie können die Aliasdefinition der öffentlichen Modulregistrierung in der Datei bicepconfig.json außer Kraft setzen:
{
"moduleAliases": {
"br": {
"public": {
"registry": "<your_module_registry>",
"modulePath": "<optional_module_path>"
}
}
}
}
Konfigurieren von Profilen und Anmeldeinformationen
Um Module in einer privaten Modulregistrierung zu veröffentlichen oder um externe Module im lokalen Cache wiederherzustellen, muss das Konto über die richtigen Berechtigungen für den Zugriff auf die Registrierung verfügen. Sie können currentProfile
und credentialPrecedence
manuell in der Bicep-Konfigurationsdatei konfigurieren, um die Authentifizierung bei der Registrierung durchzuführen.
{
"cloud": {
"currentProfile": "AzureCloud",
"profiles": {
"AzureCloud": {
"resourceManagerEndpoint": "https://management.azure.com",
"activeDirectoryAuthority": "https://login.microsoftonline.com"
},
"AzureChinaCloud": {
"resourceManagerEndpoint": "https://management.chinacloudapi.cn",
"activeDirectoryAuthority": "https://login.chinacloudapi.cn"
},
"AzureUSGovernment": {
"resourceManagerEndpoint": "https://management.usgovcloudapi.net",
"activeDirectoryAuthority": "https://login.microsoftonline.us"
}
},
"credentialPrecedence": [
"AzureCLI",
"AzurePowerShell"
]
}
}
Die verfügbaren Profile sind:
- AzureCloud
- AzureChinaCloud
- AzureUSGovernment
Standardmäßig verwendet Bicep das AzureCloud
-Profil und die Anmeldeinformationen des Benutzers/der Benutzerin, der/die in der Azure-Befehlszeilenschnittstelle oder in Azure PowerShell authentifiziert wurde. Sie können diese Profile anpassen oder neue Profile für Ihre lokalen Umgebungen hinzufügen. Wenn Sie ein Modul in einer nationalen Cloudumgebung veröffentlichen oder wiederherstellen möchten (z. B. AzureUSGovernment
), müssen Sie "currentProfile": "AzureUSGovernment"
auch dann festlegen, wenn Sie dieses Cloudprofil bereits in der Azure-Befehlszeilenschnittstelle ausgewählt haben. Bicep kann das aktuelle Cloudprofil nicht automatisch basierend auf den Einstellungen der Azure-Befehlszeilenschnittstelle ermitteln.
Bicep verwendet das Azure.Identity SDK zur Authentifizierung. Die verfügbaren Anmeldeinformationstypen sind:
Hinweis
Der Bicep-Befehl „deploy“ in Visual Studio Code verwendet die neue integrierte Authentifizierungs-API zum Verwalten der Authentifizierung. Er verwendet keine Cloudprofile aus bicepconfig.json. Um sich bei einer benutzerdefinierten Cloud anzumelden, wählen Sie Verwalten>Einstellungen>Erweiterungen>Microsoft-Konten>Microsoft Sovereign Cloud aus. Mehrere angemeldete Konten werden derzeit nicht unterstützt.