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.
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@2023-04-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.
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