Share via


Inicio rápido: Publicación de módulos de Bicep en el registro de módulos privados

Aprenda a publicar módulos de Bicep en el registro de módulos privados y a llamar a los módulos desde los archivos Bicep. El registro de módulos privados le permite compartir módulos de Bicep dentro de su organización. Para más información, consulte Creación de un registro privado para módulos de Bicep. Para contribuir al registro de módulos públicos, consulte la guía de contribución.

Requisitos previos

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.

Para trabajar con registros de módulo, debe tener la CLI de Bicep, versión 0.4.1008 o posterior. Para usarla con la CLI de Azure, también debe tener la versión 2.31.0 o posterior de la CLI de Azure; para usarla con Azure PowerShell, también debe tener la versión de Azure PowerShell 7.0.0 o posterior.

Un registro de Bicep se hospeda en Azure Container Registry (ACR). Para crear uno, consulte Inicio rápido: Creación de un registro de contenedor mediante un archivo de Bicep.

A fin de configurar el entorno para el desarrollo de Bicep, consulte Instalación de las herramientas de Bicep. Tras completar esos pasos, tendrá Visual Studio Code y la extensión de Bicep, o bien Visual Studio y la extensión de Bicep.

Creación de módulos de Bicep

Un módulo es un archivo de Bicep que se implementa desde otro archivo de Bicep. Cualquier archivo de Bicep se puede usar como módulo. En este inicio rápido, puede usar el siguiente archivo de Bicep. Crea una cuenta de almacenamiento:

@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 el archivo de Bicep como storage.bicep.

Publicación de los módulos

Si no tiene una instancia de Azure Container Registry (ACR), consulte Requisitos previos para crear una. Se necesita el nombre del servidor de inicio de sesión de ACR. El formato del nombre del servidor de inicio de sesión es: <registry-name>.azurecr.io. Para obtener el nombre del servidor de inicio de sesión:

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

Use la sintaxis siguiente para publicar un archivo de Bicep como módulo en un 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

En el ejemplo anterior, ./storage.bicep es el archivo de Bicep que se va a publicar. Actualice la ruta de acceso del archivo si es necesario. La ruta de acceso del módulo tiene la sintaxis siguiente:

br:<registry-name>.azurecr.io/<file-path>:<tag>
  • br es el nombre del esquema de un registro de Bicep.
  • La ruta de acceso al archivo en Azure Container Registry se denomina repository. La ruta de acceso del archivo puede contener segmentos separados por el carácter /. Esta ruta de acceso de archivo se crea si no existe en el registro.
  • tag se usa para especificar una versión del módulo.

Para comprobar los módulos publicados, puede enumerar el repositorio de ACR:

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

Módulos de llamada

Para llamar a un módulo, cree un archivo de Bicep en Visual Studio Code. En el nuevo archivo de Bicep, escriba la línea siguiente.

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

Reemplace <registry-name> por el nombre del registro de ACR. Se tarda unos minutos en restaurar el módulo a la caché local. Después de restaurar el módulo, la línea rizada roja debajo de la ruta del módulo desaparecerá. Al final de la línea, agregue = y un espacio y, luego, seleccione required-properties, como se muestra en la siguiente captura de pantalla. La estructura del módulo se rellena automáticamente.

Propiedades necesarias de la extensión de Visual Studio Code Bicep

El ejemplo siguiente es un archivo de Bicep completado.

@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 el archivo Bicep localmente y, a continuación, use la CLI de Azure o Azure PowerShell para implementar el archivo 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

En Azure Portal, compruebe que la cuenta de almacenamiento se ha creado correctamente.

Limpieza de recursos

Cuando los recursos de Azure dejen de ser necesarios, use la CLI de Azure o el módulo de Azure PowerShell para eliminar el grupo de recursos y el recurso del servidor del inicio rápido.

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

az group delete --name $resourceGroupName

Pasos siguientes