Creación de un registro privado para módulos de Bicep
Para compartir módulos en la organización, puede crear un registro de módulo privado. Después, puede publicar módulos en ese registro y conceder acceso de lectura a los usuarios que necesitan implementar los módulos. Una vez que los módulos se comparten en los registros, puede hacer referencia a ellos desde los archivos de Bicep. Para usar módulos públicos, consulte Módulos de Bicep.
Para trabajar con registros de módulo, debe tener la versión 0.4.1008 o posterior de la CLI de Bicep. Para usarlo con la CLI de Azure, también debe tener la versión 2.31.0 o posterior; para usarlo con Azure PowerShell, también debe tener la versión 7.0.0 o posterior.
Recursos de aprendizaje
Si prefiere información sobre los parámetros mediante instrucciones paso a paso, consulte Uso compartido de módulos de Bicep mediante registros privados.
Configuración de un registro privado
Un registro de Bicep se hospeda en Azure Container Registry (ACR). Siga los pasos que se indican a continuación para configurar el registro para los módulos.
Si ya tiene un registro de contenedor, puede usarlo. Si necesita crear un registro de contenedor, consulte Inicio rápido: Creación de un registro de contenedor mediante un archivo de Bicep.
Puede usar cualquiera de las SKU de registro disponibles para el registro del módulo. La replicación geográfica del registro proporciona a los usuarios presencia local o una copia de seguridad activa.
Obtenga el nombre del servidor de inicio de sesión. Necesita este nombre al vincular con el registro desde los archivos de Bicep. 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, use Get-AzContainerRegistry.
Get-AzContainerRegistry -ResourceGroupName "<resource-group-name>" -Name "<registry-name>" | Select-Object LoginServer
Para publicar módulos en un registro, debe tener permiso para insertar una imagen. Para implementar un módulo desde un registro, debe tener permiso para extraer la imagen. Para obtener más información sobre los roles que conceden el acceso adecuado, consulte Roles y permisos de Azure Container Registry
Según el tipo de cuenta que use para implementar el módulo, es posible que tenga que personalizar las credenciales que se usan. Estas credenciales son necesarias para obtener los módulos del registro. De forma predeterminada, las credenciales se obtienen de la CLI de Azure o de Azure PowerShell. Puede personalizar la precedencia para obtener las credenciales en el archivo bicepconfig.json. Para obtener más información, consulte Credenciales para restaurar módulos.
Importante
El registro de contenedor privado solo está disponible para los usuarios con el acceso necesario. Sin embargo, se accede a ella a través de Internet público. Para mayor seguridad, puede requerir acceso mediante un punto de conexión privado. Consulte Conexión privada a un registro de contenedor de Azure mediante Azure Private Link.
El registro de contenedor privado debe tener la directiva azureADAuthenticationAsArmPolicy
establecida en enabled
. Si azureADAuthenticationAsArmPolicy
se estableciera en disabled
, recibirá un mensaje de error 401 (no autorizado) al publicar módulos. Consulte Azure Container Registry presenta la directiva de acceso condicional.
Publicación de archivos en el registro
Después de configurar el registro de contenedor, puede publicar archivos en este. Use el comando publish y proporcione los archivos de Bicep que tenga previsto usar como módulos. Especifique la ubicación de destino del módulo en el registro. El comando publicar crea una plantilla de ARM, que se almacena en el registro. Esto significa que si publica un archivo de Bicep que hace referencia a otros módulos locales, estos módulos se expanden completamente como un archivo JSON y se publican en el registro.
Publish-AzBicepModule -FilePath ./storage.bicep -Target br:exampleregistry.azurecr.io/bicep/modules/storage:v1 -DocumentationUri https://www.contoso.com/exampleregistry.html
Con la versión 0.27.1 o posterior de la CLI de Bicep, puede publicar un módulo con el código fuente de Bicep, además de la plantilla JSON compilada. Si un módulo se publica con el código fuente de Bicep en un registro, puede presionar F12
(Ir a la definición) desde Visual Studio Code para ver el código de Bicep. Se requiere la versión 0.27 o posterior de la extensión de Bicep para ver el archivo de Bicep.
Publish-AzBicepModule -FilePath ./storage.bicep -Target br:exampleregistry.azurecr.io/bicep/modules/storage:v1 -DocumentationUri https://www.contoso.com/exampleregistry.html -WithSource
Con el modificador de origen, verá otra capa en el manifiesto:
Si el módulo de Bicep hace referencia a un módulo en un registro privado, el punto de conexión de ACR está visible. Para ocultar el punto de conexión completo, puede configurar un alias para el registro privado.
Visualización de archivos en el registro
Para ver el módulo publicado en el portal:
Inicie sesión en Azure Portal.
Busque los registros de contenedor.
Seleccione el registro.
Seleccione Servicios ->Repositorios en el menú de la izquierda.
Seleccione la ruta de acceso del módulo (repositorio). En el ejemplo anterior, el nombre de la ruta de acceso del módulo es bicep/modules/storage.
Seleccione la etiqueta. En el ejemplo anterior, la etiqueta es v1.
La referencia del artefacto coincide con la referencia que utiliza en el archivo Bicep.
Ya está listo para hacer referencia al archivo del registro desde un archivo de Bicep. Para obtener ejemplos de la sintaxis que se va a usar para hacer referencia a un módulo externo, consulte los Módulos de Bicep.
Trabajar con archivos del registro de Bicep
Al usar archivos bicep hospedados en un registro remoto, es importante comprender cómo interactúa la máquina local con el registro. Cuando declara por primera vez la referencia al registro, el editor local intenta comunicarse con Azure Container Registry y descargar una copia del registro en la memoria caché local.
La caché local se encuentra en:
En Windows
%USERPROFILE%\.bicep\br\<registry-name>.azurecr.io\<module-path\<tag>
En Linux
/home/<username>/.bicep
En Mac
~/.bicep
El equipo local puede reconocer los cambios realizados en el registro remoto hasta que ejecute un restore
con el archivo especificado que incluya la referencia del registro.
az bicep restore --file <bicep-file> [--force]
Para más información, consulte el comando restore
.
Pasos siguientes
- Para obtener más información sobre los módulos, consulte Módulos de Bicep.
- Para configurar alias para un registro de módulo, consulte Adición de una configuración de módulo en el archivo de configuración de Bicep.
- Para obtener más información sobre la publicación y la restauración de módulos, consulte los comandos de la CLI de Bicep.