Dela via


Snabbstart: Publicera Bicep-moduler till ett privat modulregister

Lär dig hur du publicerar Bicep-moduler till registret för privata moduler och hur du anropar modulerna från dina Bicep-filer. Med registret för privata moduler kan du dela Bicep-moduler i din organisation. Mer information finns i Skapa privat register för Bicep-moduler.

Förutsättningar

Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.

Om du vill arbeta med modulregister måste du ha Bicep CLI version 0.4.1008 eller senare. Om du vill använda med Azure CLI måste du också ha Azure CLI version 2.31.0 eller senare. Om du vill använda med Azure PowerShell måste du också ha Azure PowerShell version 7.0.0 eller senare.

Ett Bicep-register finns i Azure Container Registry (ACR). Information om hur du skapar ett finns i Snabbstart: Skapa ett containerregister med hjälp av en Bicep-fil.

Information om hur du konfigurerar din miljö för Bicep-utveckling finns i Installera Bicep-verktyg. När du har slutfört dessa steg har du Visual Studio Code och Bicep-tillägget eller Visual Studio och Bicep-tillägget.

Skapa Bicep-moduler

En modul är en Bicep-fil som distribueras från en annan Bicep-fil. Alla Bicep-filer kan användas som en modul. Du kan använda följande Bicep-fil i den här snabbstarten. Det skapar ett lagringskonto:

@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

Spara Bicep-filen som storage.bicep.

Publicera moduler

Om du inte har något Azure-containerregister (ACR) läser du Krav för att skapa ett. Inloggningsservernamnet för ACR behövs. Formatet för inloggningsserverns namn är: <registry-name>.azurecr.io. Så här hämtar du inloggningsserverns namn:

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

Använd följande syntax för att publicera en Bicep-fil som en modul till ett privat modulregister.

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

I föregående exempel är ./storage.bicep den Bicep-fil som ska publiceras. Uppdatera filsökvägen om det behövs. Modulsökvägen har följande syntax:

br:<registry-name>.azurecr.io/<file-path>:<tag>
  • br är schemanamnet för ett Bicep-register.
  • filsökvägen anropas repository i Azure Container Registry. Filsökvägen kan innehålla segment som avgränsas med / tecknet. Den här filsökvägen skapas om den inte finns i registret.
  • -taggen används för att ange en version för modulen.

Om du vill verifiera de publicerade modulerna kan du visa en lista över ACR-lagringsplatsen:

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

Anropa moduler

Om du vill anropa en modul skapar du en ny Bicep-fil i Visual Studio Code. I den nya Bicep-filen anger du följande rad.

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

Ersätt <registernamnet> med ditt ACR-registernamn. Det tar en kort stund att återställa modulen till din lokala cache. När modulen har återställts försvinner den röda kladdiga linjen under modulsökvägen. I slutet av raden lägger du till = och ett blanksteg och väljer sedan obligatoriska egenskaper enligt följande skärmbild. Modulstrukturen fylls i automatiskt.

Egenskaper som krävs för Visual Studio Code Bicep-tillägget

Följande exempel är en slutförd Bicep-fil.

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

Spara Bicep-filen lokalt och använd sedan Azure CLI eller Azure PowerShell för att distribuera Bicep-filen:

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

Kontrollera att lagringskontot har skapats från Azure-portalen.

Rensa resurser

När Azure-resurserna inte längre behövs använder du Azure CLI- eller Azure PowerShell-modulen för att ta bort snabbstartsresursgruppen.

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

az group delete --name $resourceGroupName

Nästa steg