Schnellstart: Veröffentlichen von Bicep-Modulen in der Registrierung privater Module

Erfahren Sie, wie Sie Bicep-Module in der Registrierung privater Module veröffentlichen und die Module aus Ihren Bicep-Dateien aufrufen. Mit der Registrierung privater Module können Sie Bicep-Module innerhalb Ihrer Organisation freigeben. Weitere Informationen finden Sie unter Erstellen einer privaten Registrierung für Bicep-Module.

Voraussetzungen

Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.

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 die Azure CLI-Version 2.31.0 oder höher. Zur Verwendung mit Azure PowerShell benötigen Sie außerdem Version 7.0.0 oder höher.

Eine Bicep-Registrierung wird auf Azure Container Registry (ACR) gehostet. Für die Erstellung finden Sie Informationen unter Schnellstart: Erstellen einer Azure-Containerregistrierung mithilfe einer Bicep-Datei.

Informationen zum Einrichten Ihrer Umgebung für die Bicep-Entwicklung finden Sie unter Installieren von Bicep-Tools. Nachdem Sie diese Schritte ausgeführt haben, verfügen Sie über Visual Studio Code und die Bicep-Erweiterung oder Visual Studio und die Bicep-Erweiterung.

Erstellen von Bicep-Modulen

Bei einem Modul handelt es sich um eine Bicep-Datei, die von einer anderen Bicep-Datei bereitgestellt wird. Jede beliebige Bicep-Datei kann als Modul verwendet werden. Sie können die folgende Bicep-Datei in dieser Schnellstartanleitung verwenden. Sie erstellt ein Speicherkonto:

@minLength(3)
@maxLength(11)
param storagePrefix string

@allowed([
  'Standard_LRS'
  'Standard_GRS'
  'Standard_RAGRS'
  'Standard_ZRS'
  'Premium_LRS'
  'Premium_ZRS'
  'Standard_GZRS'
  'Standard_RAGZRS'
])
param storageSKU string = 'Standard_LRS'
param location string

var uniqueStorageName = '${storagePrefix}${uniqueString(resourceGroup().id)}'

resource stg 'Microsoft.Storage/storageAccounts@2023-04-01' = {
  name: uniqueStorageName
  location: location
  sku: {
    name: storageSKU
  }
  kind: 'StorageV2'
  properties: {
    supportsHttpsTrafficOnly: true
  }
}

output storageEndpoint object = stg.properties.primaryEndpoints

Speichern Sie die Bicep-Datei als storage.bicep.

Module veröffentlichen

Wenn Sie nicht über eine Azure-Containerregistrierung (Azure Container Registry, ACR) verfügen, lesen Sie Voraussetzungen für die Erstellung einer Registrierung. Der Anmeldeservername der ACR wird benötigt. Das Format des Anmeldeservernamens lautet <registry-name>.azurecr.io. So erhalten Sie den Namen des Anmeldeservers:

az acr show --resource-group <resource-group-name> --name <registry-name> --query loginServer

Verwenden Sie die folgende Syntax, um eine Bicep-Datei als Modul in einer privaten Modulregistrierung zu veröffentlichen.

az bicep publish --file storage.bicep --target br:exampleregistry.azurecr.io/bicep/modules/storage:v1 --documentationUri https://www.contoso.com/exampleregistry.html

Im vorherigen Beispiel ist ./storage.bicep die zu veröffentlichende Bicep-Datei. Aktualisieren Sie bei Bedarf den Dateipfad. Der Modulpfad verfügt über die folgende Syntax:

br:<registry-name>.azurecr.io/<file-path>:<tag>
  • br ist der Schemaname für eine Bicep-Registrierung.
  • Der Dateipfad wird in der Azure Container Registry mit repository bezeichnet. Der Dateipfad kann Segmente enthalten, die durch das Zeichen / getrennt sind. Dieser Dateipfad wird erstellt, wenn er nicht in der Registrierung vorhanden ist.
  • tag wird verwendet, um eine Version für das Modul anzugeben.

Um die veröffentlichten Module zu überprüfen, können Sie das ACR-Repository auflisten:

az acr repository list --name <registry-name> --output table

Aufrufen von Modulen

Zum Aufrufen eines Moduls erstellen Sie eine neue Bicep-Datei in Visual Studio Code. Geben Sie in der neuen Bicep-Datei die folgende Linie ein.

module stgModule 'br:<registry-name>.azurecr.io/bicep/modules/storage:v1'

Ersetzen Sie <registry-name> durch Ihren ACR-Registrierungsnamen. Es dauert einen kurzen Moment, das Modul im lokalen Cache wiederherzustellen. Nachdem das Modul wiederhergestellt wurde, wird die rote geschweifte Linie unter dem Modulpfad entfernt. Fügen Sie am Ende der Linie = und ein Leerzeichen hinzu, und wählen Sie dann required-properties (erforderliche Eigenschaften) aus, wie im folgenden Screenshot gezeigt. Die Modulstruktur wird automatisch ausgefüllt.

Für die Bicep-Erweiterung für Visual Studio Code erforderliche Eigenschaften.

Das folgende Beispiel ist eine abgeschlossene Bicep-Datei.

@minLength(3)
@maxLength(11)
param namePrefix string
param location string = resourceGroup().location

module stgModule 'br:ace1207.azurecr.io/bicep/modules/storage:v1' = {
  name: 'stgStorage'
  params: {
    location: location
    storagePrefix: namePrefix
  }
}

Speichern Sie die Bicep-Datei lokal und verwenden Sie dann Azure CLI oder Azure PowerShell zum Bereitstellen der Bicep-Datei:

resourceGroupName = "{provide-a-resource-group-name}"
templateFile="{provide-the-path-to-the-bicep-file}"

az group create --name $resourceGroupName --location eastus

az deployment group create --resource-group $resourceGroupName --template-file $templateFile

Überprüfen Sie im Azure-Portal, ob das Speicherkonto erfolgreich erstellt wurde.

Bereinigen von Ressourcen

Wenn Sie die Azure-Ressourcen nicht mehr benötigen, löschen Sie die Ressourcengruppe der Schnellstartanleitung mithilfe der Azure-Befehlszeilenschnittstelle oder des Azure PowerShell-Moduls.

resourceGroupName = "{provide-the-resource-group-name}"

az group delete --name $resourceGroupName

Nächste Schritte