Erstellen einer privaten Registrierung für Bicep-Module
Um Module innerhalb Ihrer Organisation freizugeben, können Sie eine private Modulregistrierung erstellen. Sie können dann Module in dieser Registrierung veröffentlichen und Benutzern, welche die Module bereitstellen müssen, Lesezugriff gewähren. Nachdem die Module in den Registrierungen freigegeben wurden, können Sie in Ihren Bicep-Dateien darauf verweisen. Informationen zur Verwendung öffentlicher Module finden Sie unter Bicep-Module.
Für die Arbeit mit Modulregistrierungen benötigen Sie die Bicep CLI-Version 0.4.1008 oder höher. Zur Verwendung mit der Azure CLI benötigen Sie auch mindestens Version 2.31.0. Zur Verwendung mit Azure PowerShell benötigen Sie außerdem mindestens Version 7.0.0.
Schulungsressourcen
Wenn Sie lieber Schritt-für-Schritt-Anleitungen zu Parametern lernen möchten, finden Sie weitere Informationen unter Teilen von Bizepsmodulen mithilfe privater Registrierungen.
Konfigurieren einer privaten Registrierung
Eine Bicep-Registrierung wird auf Azure Container Registry (ACR) gehostet. Verwenden Sie die folgenden Schritte, um Ihre Registrierung für Module zu konfigurieren.
Wenn Sie bereits über eine Containerregistrierung verfügen, können Sie sie verwenden. Wenn Sie eine Containerregistrierung erstellen müssen, finden Sie weitere Informationen unter Schnellstart: Erstellen einer Containerregistrierung mithilfe einer Bicep-Datei.
Sie können jede der verfügbaren Registrierungs-SKUs für die Modulregistrierung verwenden. Die Georeplikation der Registrierung bietet Benutzern eine lokale Präsenz oder eine Sicherung auf heißer Speicherebene.
Rufen Sie den Namen des Anmeldeservers ab. Sie benötigen diesen Namen, wenn Sie aus Ihren Bicep-Dateien eine Verknüpfung mit der Registrierung herstellen. Das Format des Anmeldeservernamens lautet
<registry-name>.azurecr.io
.Um den Namen des Anmeldeservers abzurufen, verwenden Sie Get-AzContainerRegistry.
Get-AzContainerRegistry -ResourceGroupName "<resource-group-name>" -Name "<registry-name>" | Select-Object LoginServer
Um Module in einer Registrierung zu veröffentlichen, benötigen Sie die Berechtigung zum Pushen eines Images. Um Module aus einer Registrierung bereitzustellen, benötigen Sie die Berechtigung zum Pullen des Images. Weitere Informationen zu den Rollen, die angemessenen Zugriff gewähren, finden Sie unter Azure Container Registry-Rollen und -Berechtigungen.
Abhängig vom Typ des Kontos, das Sie zum Bereitstellen des Moduls verwenden, müssen Sie möglicherweise anpassen, welche Anmeldeinformationen verwendet werden. Diese Anmeldeinformationen werden benötigt, um die Module aus der Registrierung abzurufen. Standardmäßig werden Anmeldeinformationen aus Azure CLI oder Azure PowerShell abgerufen. Sie können die Rangfolge zum Abrufen der Anmeldeinformationen in der Datei bicepconfig.json anpassen. Weitere Informationen finden Sie unter Anmeldeinformationen zum Wiederherstellen von Modulen.
Wichtig
Die Registrierung privater Container ist nur für Benutzer mit dem erforderlichen Zugriff verfügbar. Der Zugriff darauf erfolgt jedoch über das öffentliche Internet. Um die Sicherheit zu erhöhen, können Sie Zugriff über einen privaten Endpunkt anfordern. Weitere Informationen finden Sie unter Herstellen einer privaten Verbindung mit einer Azure-Containerregistrierung über Azure Private Link.
Für die private Containerregistrierung muss die Richtlinie azureADAuthenticationAsArmPolicy
auf enabled
festgelegt sein. Wenn azureADAuthenticationAsArmPolicy
auf disabled
festgelegt ist, erhalten Sie beim Veröffentlichen von Modulen eine Fehlermeldung vom Typ 401 (Nicht autorisiert). Siehe Azure Container Registry führt die Richtlinie für bedingten Zugriff ein.
Veröffentlichen von Dateien in der Registrierung
Nachdem Sie die Containerregistrierung eingerichtet haben, können Sie darin Dateien veröffentlichen. Verwenden Sie den Befehl publish, und geben Sie alle Bicep-Dateien an, die Sie als Module verwenden möchten. Geben Sie den Zielspeicherort für das Modul in Ihrer Registrierung an. Der Befehl zum Veröffentlichen erstellt eine ARM-Vorlage, die in der Registrierung gespeichert wird. Dies bedeutet, dass bei der Veröffentlichung einer Bicep-Datei, die auf andere lokale Module verweist, diese Module vollständig als eine JSON-Datei erweitert und in der Registrierung veröffentlicht werden.
Publish-AzBicepModule -FilePath ./storage.bicep -Target br:exampleregistry.azurecr.io/bicep/modules/storage:v1 -DocumentationUri https://www.contoso.com/exampleregistry.html
Mit Bicep CLI Version 0.27.1 oder höher können Sie zusätzlich zur kompilierten JSON-Vorlage ein Modul mit dem Bicep-Quellcode veröffentlichen. Wenn ein Modul mit dem Bicep-Quellcode in einer Registrierung veröffentlicht wird, können Sie in Visual Studio Code F12
drücken (Zur Definition), um den Bicep-Code anzuzeigen. Version 0.27 oder höher der Bicep-Erweiterung ist erforderlich, um die Bicep-Datei anzuzeigen.
Publish-AzBicepModule -FilePath ./storage.bicep -Target br:exampleregistry.azurecr.io/bicep/modules/storage:v1 -DocumentationUri https://www.contoso.com/exampleregistry.html -WithSource
Mit dem Schalter „Quelle“ wird im Manifest eine andere Ebene angezeigt:
Wenn das Bicep-Modul auf ein Modul in einer privaten Registrierung verweist, ist der ACR-Endpunkt sichtbar. Um den vollständigen Endpunkt auszublenden, können Sie einen Alias für die private Registrierung konfigurieren.
Anzeigen von Dateien in der Registrierung
So zeigen Sie das veröffentlichte Modul im Portal an
Melden Sie sich beim Azure-Portal an.
Suchen Sie nach Containerregistrierungen.
Wählen Sie Ihre Registrierung aus.
Wählen Sie im Menü links Dienste > Repositorys aus.
Wählen Sie den Modulpfad (Repository) aus. Im vorherigen Beispiel lautet der Name des Modulpfads bicep/modules/storage.
Wählen Sie das Tag aus. Im vorherigen Beispiel lautet das Tag v1.
Der Artefaktverweis entspricht dem Verweis, den Sie in der Bicep-Datei verwenden.
Sie können nun aus einer Bicep-Datei auf die Datei in der Registrierung verweisen. Beispiele für die Syntax, die zum Verweisen auf ein externes Modul verwendet wird, finden Sie unter Bicep-Module.
Arbeiten mit Bicep-Registrierungsdateien
Bei der Verwendung von Bicep-Dateien, die in einer Remoteregistrierung gehostet werden, ist es wichtig zu verstehen, wie Ihr lokaler Computer mit der Registrierung interagiert. Wenn Sie den Verweis auf die Registrierung zum ersten Mal deklarieren, versucht Ihr lokaler Editor, mit der Azure Container Registry zu kommunizieren und eine Kopie der Registrierung in Ihren lokalen Cache herunterzuladen.
Der lokale Cache befindet sich hier:
Unter Windows
%USERPROFILE%\.bicep\br\<registry-name>.azurecr.io\<module-path\<tag>
Unter Linux
/home/<username>/.bicep
Unter Mac
~/.bicep
Ihr lokaler Computer kann alle Änderungen erkennen, die an der Remoteregistrierung vorgenommen wurden, bis Sie einen restore
mit der angegebenen Datei ausführen, die den Registrierungsverweis enthält.
az bicep restore --file <bicep-file> [--force]
Weitere Informationen finden Sie im Abschnitt zum restore
-Befehl.
Nächste Schritte
- Weitere Informationen zu Modulen finden Sie unter Bicep-Module.
- Informationen zum Konfigurieren von Aliasen für eine Modulregistrierung finden Sie unter Hinzufügen von Moduleinstellungen in der Bicep-Konfigurationsdatei.
- Weitere Informationen zum Veröffentlichen und Wiederherstellen von Modulen finden Sie unter Bicep CLI-Befehle.