Configuración del entorno de Bicep
Bicep admite un archivo de configuración opcional denominado bicepconfig.json. Dentro de este archivo, puede agregar valores que personalicen la experiencia de desarrollo de Bicep. Este archivo se combina con el archivo de configuración predeterminado. Para obtener más información, consulte Descripción del proceso de combinación. Para personalizar una configuración, cree una configuración en el mismo directorio o en un directorio primario de los archivos de Bicep. Si hay varios directorios primarios que contienen archivos bicepconfig.json, Bicep usa la configuración de la más cercana. Para obtener más información, consulte Descripción del proceso de resolución de archivos.
Para configurar las opciones de extensión de Bicep, consulte extensión de Visual Studio Code y Bicep.
Creación del archivo de configuración en Visual Studio Code
Puede usar cualquier editor de texto para crear el archivo de configuración.
Para crear un archivo de bicepconfig.json en Visual Studio Code, abra la paleta de comandos ([CTRL/CMD]+[SHIFT]+P) y seleccione Bicep: Crear archivo de configuración de Bicep. Para más información, consulte la Creación de un archivo de configuración de Bicep.
La extensión de Bicep para Visual Studio Code admite IntelliSense para bicepconfig.json archivos. Uso de IntelliSense para detectar las propiedades y valores disponibles.
Descripción del proceso de combinación
El archivo bicepconfig.json se somete a un proceso recursivo de fusión ascendente con el archivo de configuración por defecto. Durante el proceso de combinación, Bicep examina cada ruta de acceso en ambas configuraciones. Si una ruta de acceso no está presente en la configuración predeterminada, la ruta de acceso y su valor asociado se agregan en el resultado final. Por el contrario, si existe una ruta de acceso en la configuración predeterminada con un valor diferente, el valor de bicepconfig.json tiene prioridad en el resultado combinado.
Considere un escenario en el que la configuración predeterminada se defina de la siguiente manera:
{
"cloud": {
...
"credentialPrecedence": [
"AzureCLI",
"AzurePowerShell"
]
},
"moduleAliases": {
"ts": {},
"br": {
"public": {
"registry": "mcr.microsoft.com",
"modulePath": "bicep"
}
}
},
...
}
Y el bicepconfig.json se define de la siguiente manera:
{
"cloud": {
"credentialPrecedence": [
"AzurePowerShell",
"AzureCLI"
]
},
"moduleAliases": {
"br": {
"ContosoRegistry": {
"registry": "contosoregistry.azurecr.io"
},
"CoreModules": {
"registry": "contosoregistry.azurecr.io",
"modulePath": "bicep/modules/core"
}
}
}
}
La configuración combinada resultante sería:
{
"cloud": {
...
"credentialPrecedence": [
"AzurePowerShell",
"AzureCLI"
]
},
"moduleAliases": {
"ts": {},
"br": {
"public": {
"registry": "mcr.microsoft.com",
"modulePath": "bicep"
},
"ContosoRegistry": {
"registry": "contosoregistry.azurecr.io"
},
"CoreModules": {
"registry": "contosoregistry.azurecr.io",
"modulePath": "bicep/modules/core"
}
}
},
...
}
En el ejemplo anterior, el valor de cloud.credentialPrecedence
se reemplaza, mientras que los valores de cloud.moduleAliases.ContosoRegistry
y cloud.moduleAliases.CoreModules
se anexa en la configuración combinada.
Descripción del proceso de resolución de archivos
El archivo bicepconfig.json se puede colocar en el mismo directorio o en un directorio primario de los archivos de Bicep. Si hay varios directorios primarios que contienen archivos bicepconfig.json, Bicep usa el archivo de configuración del más cercano. Por ejemplo, en la estructura de carpetas especificada donde cada carpeta tiene un archivo bicepconfig.json:
Si compila main.bicep en la child
carpeta, se usa el archivo bicepconfig.json de la child
carpeta. Los archivos de configuración de la carpeta parent
y la carpeta root
se omiten. Si la carpeta child
no contiene un archivo de configuración, Bicep busca una configuración en la carpeta parent
y, después, en la carpeta root
. Si no se encuentra un archivo de configuración en ninguna de las carpetas, Bicep usa los valores predeterminados.
En el contexto de un archivo de Bicep que invoca varios módulos, cada módulo se somete a la compilación mediante el bicepconfig.json más cercano. A continuación, el archivo de Bicep principal se compila con su bicepconfig.jsoncorrespondiente. En el escenario siguiente, modA.bicep
se compila con el bicepconfig.json ubicado en la A
carpeta, modB.bicep
se compila con el bicepconfig.json de la B
carpeta y, por último, main.bicep se compila mediante el bicepconfig.json de la root
carpeta.
En ausencia de un archivo de bicepconfig.json en las carpetas A
y B
, los tres archivos de Bicep se compilan con el bicepconfig.json que se encuentra en la root
carpeta. Si bicepconfig.json no está presente en ninguna de las carpetas, la compilación usa los valores predeterminados de valores predeterminados.
Configuración de módulos de Bicep
Al trabajar con módulos, puede agregar alias para las rutas de acceso de los módulos. Estos alias simplifican el archivo de Bicep porque no tiene que repetir rutas de acceso complicadas. También puede configurar el perfil de nube y la precedencia de credenciales para autenticarse en Azure desde la CLI de Bicep y Visual Studio Code. Las credenciales se usan para publicar módulos en registros y para restaurar módulos externos a la memoria caché local cuando se usa la función de inserción de recursos. Para más información, consulte Agregar la configuración del módulo a la configuración de Bicep.
Configuración de reglas de Linter
La herramienta linter de Bicep comprueba los archivos de Bicep en busca de errores de sintaxis e infracciones de procedimientos recomendados. Puede modificar un archivo bicepconfig.json para invalidar la configuración predeterminada de cómo se valida un archivo de Bicep. Para más información, consulte Agregar la configuración de linter a la configuración de Bicep.
Habilitación de características experimentales
Puede habilitar las características experimentales agregando la siguiente sección al archivo bicepconfig.json. El uso de características experimentales permite automáticamente la generación de código de la versión 2.0 del lenguaje.
Este es un ejemplo de cómo habilitar las características "aserciones" y "testFramework".
{
"experimentalFeaturesEnabled": {
"assertions": true,
"testFramework": true
}
}
Consulte Características experimentales para obtener más información sobre las características experimentales de Bicep.
Pasos siguientes
- Obtenga información sobre cómo agregar la configuración del módulo y la configuración de linter en el archivo de configuración de Bicep.
- Más información acerca de Bicep linter.