Início rápido: Publicar módulos Bicep no registro de módulos privados

Saiba como publicar módulos Bicep no registro de módulos privados e como chamar esses módulos em seus arquivos Bicep. O registro de módulos privados permite compartilhar módulos Bicep em sua organização. Para saber mais, confira Criar um registro privado para módulos Bicep.

Pré-requisitos

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

Para trabalhar com registros de módulo, você precisa da CLI de Bicep versão 0.4.1008 ou posterior. Para usar com a CLI do Azure, também é preciso ter a versão 2.31.0 ou posterior. Para usar com o Azure PowerShell, também é preciso ter o Azure PowerShell versão 7.0.0 ou posterior.

Um registro Bicep é hospedado no ACR (Registro de Contêiner do Azure). Para criar um, confira Início rápido: Criar um registro de contêineres usando um arquivo Bicep.

Para configurar seu ambiente para o desenvolvimento do Bicep, confira Instalar ferramentas do Bicep. Após concluir estas etapas, você terá o Visual Studio Code e a Extensão do Bicep ou o Visual Studio e a Extensão do Bicep.

Criar módulos Bicep

Um módulo é apenas um arquivo Bicep implantado de outro arquivo Bicep. Todo arquivo Bicep pode ser usado como um módulo. Você pode usar o arquivo Bicep a seguir neste início rápido. Ele 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@2023-04-01' = {
  name: uniqueStorageName
  location: location
  sku: {
    name: storageSKU
  }
  kind: 'StorageV2'
  properties: {
    supportsHttpsTrafficOnly: true
  }
}

output storageEndpoint object = stg.properties.primaryEndpoints

Salve o arquivo Bicep como storage.bicep.

Publicar módulos

Se você não tiver um ACR (registro de contêineres do Azure), confira os Pré-requisitos para a criação de um. O nome do servidor de logon do ACR é necessário. O formato do nome do servidor de logon é: <registry-name>.azurecr.io. Para obter o nome do servidor de logon:

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

Use a sintaxe a seguir para publicar um arquivo Bicep como um módulo em um registro de módulos privados.

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 arquivo Bicep a ser publicado. Atualize o caminho do arquivo, 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 para um registro Bicep.
  • file path tem o nome de repository no Registro de Contêiner do Azure. O file path pode conter segmentos separados pelo caractere /. Esse caminho de arquivo é criado, caso não exista no registro.
  • tag é usada para especificar uma versão do módulo.

Para verificar os módulos publicados, liste 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 arquivo Bicep no Visual Studio Code. No novo arquivo Bicep, insira a linha a seguir.

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

Substitua <registry-name> pelo nome do registro ACR. Leva pouco tempo para restaurar o módulo no cache local. Depois que o módulo for restaurado, a linha vermelha curvada abaixo do caminho dele desaparecerá. No final da linha, adicione = e um espaço e selecione required-properties, conforme mostrado na captura de tela a seguir. A estrutura do módulo é preenchida automaticamente.

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

O exemplo a seguir é um arquivo 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
  }
}

Salve o arquivo Bicep localmente e use a CLI do Azure ou o Azure PowerShell para implantá-lo:

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

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

Limpar os recursos

Quando os recursos do Azure não forem mais necessários, use o módulo da CLI do Azure ou do Azure PowerShell para excluir o grupo de recursos de início rápido.

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

az group delete --name $resourceGroupName

Próximas etapas