Szybki start: publikowanie modułów Bicep w rejestrze modułów prywatnych

Dowiedz się, jak publikować moduły Bicep w rejestrze modułów prywatnych oraz jak wywoływać moduły z plików Bicep. Rejestr modułów prywatnych umożliwia udostępnianie modułów Bicep w organizacji. Aby dowiedzieć się więcej, zobacz Tworzenie rejestru prywatnego dla modułów Bicep. Aby współtworzyć rejestr modułów publicznych, zobacz przewodnik współtworzenia.

Wymagania wstępne

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

Aby pracować z rejestrami modułów, musisz mieć interfejs wiersza polecenia Bicepw wersji 0.4.1008 lub nowszej. Aby korzystać z interfejsu wiersza polecenia platformy Azure, musisz również mieć interfejs wiersza polecenia platformy Azure w wersji 2.31.0 lub nowszej; aby korzystać z Azure PowerShell, musisz również mieć Azure PowerShell w wersji 7.0.0 lub nowszej.

Rejestr Bicep jest hostowany na Azure Container Registry (ACR). Aby je utworzyć, zobacz Szybki start: tworzenie rejestru kontenerów przy użyciu pliku Bicep.

Aby skonfigurować środowisko na potrzeby opracowywania aplikacji Bicep, zobacz Instalowanie narzędzi Bicep. Po wykonaniu tych kroków będziesz mieć Visual Studio Code i rozszerzenie Bicep lub Visual Studio oraz rozszerzenie Bicep.

Tworzenie modułów Bicep

Moduł to plik Bicep wdrożony z innego pliku Bicep. Dowolny plik Bicep może być używany jako moduł. W tym przewodniku Szybki start możesz użyć następującego pliku Bicep. Tworzy konto magazynu:

@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@2021-06-01' = {
  name: uniqueStorageName
  location: location
  sku: {
    name: storageSKU
  }
  kind: 'StorageV2'
  properties: {
    supportsHttpsTrafficOnly: true
  }
}

output storageEndpoint object = stg.properties.primaryEndpoints

Zapisz plik Bicep jako storage.bicep.

Publikowanie modułów

Jeśli nie masz rejestru kontenerów platformy Azure (ACR), zobacz Wymagania wstępne , aby je utworzyć. Wymagana jest nazwa serwera logowania usługi ACR. Format nazwy serwera logowania to: <registry-name>.azurecr.io. Aby uzyskać nazwę serwera logowania:

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

Użyj następującej składni, aby opublikować plik Bicep jako moduł w rejestrze modułów prywatnych.

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

W poprzednim przykładzie plik ./storage.bicep jest plikiem Bicep, który ma zostać opublikowany. Zaktualizuj ścieżkę pliku w razie potrzeby. Ścieżka modułu ma następującą składnię:

br:<registry-name>.azurecr.io/<file-path>:<tag>
  • br to nazwa schematu rejestru Bicep.
  • ścieżka pliku jest wywoływana repository w Azure Container Registry. Ścieżka pliku może zawierać segmenty oddzielone znakiem/. Ta ścieżka pliku jest tworzona, jeśli nie istnieje w rejestrze.
  • tag służy do określania wersji modułu.

Aby sprawdzić opublikowane moduły, możesz wyświetlić listę repozytorium usługi ACR:

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

Wywoływanie modułów

Aby wywołać moduł, utwórz nowy plik Bicep w Visual Studio Code. W nowym pliku Bicep wprowadź następujący wiersz.

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

Zastąp <ciąg registry-name> nazwą rejestru usługi ACR. Przywrócenie modułu do lokalnej pamięci podręcznej trwa chwilę. Po przywróceniu modułu czerwona linia zwijana pod ścieżką modułu zniknie. Na końcu wiersza dodaj = i spację, a następnie wybierz wymagane właściwości , jak pokazano na poniższym zrzucie ekranu. Struktura modułu jest wypełniana automatycznie.

Visual Studio Code wymagane właściwości rozszerzenia Bicep

Poniższy przykład to ukończony plik Bicep.

@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
  }
}

Zapisz plik Bicep lokalnie, a następnie użyj interfejsu wiersza polecenia platformy Azure lub Azure PowerShell, aby wdrożyć plik Bicep:

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

Z poziomu Azure Portal sprawdź, czy konto magazynu zostało pomyślnie utworzone.

Czyszczenie zasobów

Gdy zasoby platformy Azure nie są już potrzebne, użyj interfejsu wiersza polecenia platformy Azure lub modułu Azure PowerShell, aby usunąć grupę zasobów szybkiego startu.

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

az group delete --name $resourceGroupName

Następne kroki