Share via


Início Rápido: Publicar módulos do Bicep no registo de módulos privados

Saiba como publicar módulos do Bicep no registo de módulos privados e como chamar os módulos a partir dos seus ficheiros bicep. O registo de módulos privados permite-lhe partilhar módulos bicep na sua organização. Para saber mais, veja Criar registo privado para módulos do Bicep. Para contribuir para o registo do módulo público, veja o guia de contribuição.

Pré-requisitos

Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.

Para trabalhar com registos de módulos, tem de ter a versão 0.4.1008 ou posterior da CLI do Bicep. Para utilizar com a CLI do Azure, também tem de ter a versão 2.31.0 ou posterior da CLI do Azure; para utilizar com Azure PowerShell, também tem de ter Azure PowerShell versão 7.0.0 ou posterior.

Um registo do Bicep está alojado no Azure Container Registry (ACR). Para criar um, veja Início Rápido: Criar um registo de contentor com um ficheiro Bicep.

Para configurar o seu ambiente para o desenvolvimento do Bicep, veja Instalar ferramentas do Bicep. Depois de concluir esses passos, terá o Visual Studio Code e a extensão bicep ou o Visual Studio e a extensão Bicep.

Criar módulos do Bicep

Um módulo é um ficheiro Bicep que é implementado a partir de outro ficheiro Bicep. Qualquer ficheiro Bicep pode ser utilizado como um módulo. Pode utilizar o seguinte ficheiro Bicep neste início rápido. Cria uma conta de armazenamento:

@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

Guarde o ficheiro Bicep como storage.bicep.

Publicar módulos

Se não tiver um registo de contentor do Azure (ACR), veja Pré-requisitos para criar um. É necessário o nome do servidor de início de sessão do ACR. O formato do nome do servidor de início de sessão é: <registry-name>.azurecr.io. Para obter o nome do servidor de início de sessão:

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

Utilize a seguinte sintaxe para publicar um ficheiro Bicep como um módulo num registo de módulo privado.

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

No exemplo anterior, ./storage.bicep é o ficheiro Bicep a publicar. Atualize o caminho do ficheiro, se necessário. O caminho do módulo tem a seguinte sintaxe:

br:<registry-name>.azurecr.io/<file-path>:<tag>
  • br é o nome do esquema de um registo do Bicep.
  • o caminho do ficheiro é chamado repository no Azure Container Registry. O caminho do ficheiro pode conter segmentos separados pelo / caráter. Este caminho de ficheiro é criado se não existir no registo.
  • a etiqueta é utilizada para especificar uma versão para o módulo.

Para verificar os módulos publicados, pode listar o repositório do ACR:

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

Chamar módulos

Para chamar um módulo, crie um novo ficheiro Bicep no Visual Studio Code. No novo ficheiro Bicep, introduza a seguinte linha.

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

Substitua <registry-name> pelo nome do registo do ACR. Demora pouco tempo a restaurar o módulo para a cache local. Depois de o módulo ser restaurado, a linha curva vermelha por baixo do caminho do módulo irá desaparecer. No final da linha, adicione = e um espaço e, em seguida, selecione required-properties , conforme mostrado na seguinte captura de ecrã. A estrutura do módulo é preenchida automaticamente.

Propriedades necessárias da extensão do Bicep do Visual Studio Code

O exemplo seguinte é um ficheiro Bicep concluído.

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

Guarde o ficheiro Bicep localmente e, em seguida, utilize a CLI do Azure ou Azure PowerShell para implementar o ficheiro 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

Na portal do Azure, verifique se a conta de armazenamento foi criada com êxito.

Limpar os recursos

Quando os recursos do Azure já não forem necessários, utilize a CLI do Azure ou Azure PowerShell módulo para eliminar o grupo de recursos de início rápido.

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

az group delete --name $resourceGroupName

Passos seguintes