Configurar seu ambiente Bicep
O Bicep dá suporte a um arquivo de configuração opcional chamado bicepconfig.json
. Dentro desse arquivo, você pode adicionar valores que personalizam sua experiência de desenvolvimento do Bicep. Esse arquivo é mesclado com o arquivo de configuração padrão. Para obter mais informações, confira Noções básicas sobre o processo de mesclagem. Para personalizar a configuração, crie um arquivo de configuração no mesmo diretório ou um diretório pai dos arquivos Bicep. Se houver vários diretórios pai contendo arquivos bicepconfig.json
, o Bicep usará a configuração do mais próximo. Para obter mais informações, confira Noções básicas sobre o processo de resolução de arquivos.
Para definir as configurações de extensão do Bicep, consulte VS Code e extensão Bicep.
Criar o arquivo de configuração no Visual Studio Code
Você pode usar qualquer editor de texto para criar o arquivo de configuração.
Para criar um arquivo bicepconfig.json
no Visual Studio Code, abra a Paleta de Comandos ([CTRL/CMD]+[SHIFT]+P) e selecione Bicep: criar arquivo de configuração do Bicep. Para obter mais informações, confira Criar arquivo de configuração Bicep.
A extensão Bicep para Visual Studio Code dá suporte ao intelliSense para seu arquivo bicepconfig.json
. Use o intelliSense para descobrir propriedades e valores disponíveis.
Entender o processo de mesclagem
O arquivo bicepconfig.json
passa por um processo de mesclagem de baixo para cima recursivo com o arquivo de configuração padrão. Durante o processo de mesclagem, o Bicep examina cada caminho em ambas as configurações. Se um caminho não estiver presente na configuração padrão, o caminho e seu valor associado serão adicionados ao resultado final. Por outro lado, se houver um caminho na configuração padrão com um valor diferente, o valor de bicepconfig.json
terá precedência no resultado mesclado.
Considere um cenário em que a configuração padrão é definida da seguinte maneira:
{
"cloud": {
...
"credentialPrecedence": [
"AzureCLI",
"AzurePowerShell"
]
},
"moduleAliases": {
"ts": {},
"br": {
"public": {
"registry": "mcr.microsoft.com",
"modulePath": "bicep"
}
}
},
...
}
E o bicepconfig.json
é definido da seguinte maneira:
{
"cloud": {
"credentialPrecedence": [
"AzurePowerShell",
"AzureCLI"
]
},
"moduleAliases": {
"br": {
"ContosoRegistry": {
"registry": "contosoregistry.azurecr.io"
},
"CoreModules": {
"registry": "contosoregistry.azurecr.io",
"modulePath": "bicep/modules/core"
}
}
}
}
A configuração mesclada resultante seria:
{
"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"
}
}
},
...
}
No exemplo anterior, o valor de cloud.credentialPrecedence
é substituído, enquanto os valores de cloud.moduleAliases.ContosoRegistry
e cloud.moduleAliases.CoreModules
são acrescentados na configuração mesclada.
Entender o processo de resolução de arquivos
O arquivo bicepconfig.json
pode ser colocado no mesmo diretório ou em um diretório pai dos arquivos Bicep. Se houver vários diretórios pai contendo arquivos bicepconfig.json
, o Bicep usará o arquivo de configuração do mais próximo. Por exemplo, na estrutura de pasta fornecida em que cada pasta tem um arquivo bicepconfig.json
:
Se você compilar main.bicep
na pasta child
, o arquivo bicepconfig.json
na pasta child
será usado. Os arquivos de configuração na pasta parent
e na pasta root
são ignorados. Se a pasta child
não contiver um arquivo de configuração, o Bicep procurará uma configuração na pasta parent
e, em seguida, na pasta root
. Se nenhum arquivo de configuração for encontrado em nenhuma das pastas, o Bicep usará os valores padrão.
No contexto de um arquivo Bicep invocando vários módulos, cada módulo passa por compilação usando o bicepconfig.json
mais próximo. Em seguida, o arquivo Bicep principal é compilado com seu bicepconfig.json
correspondente. No cenário a seguir, modA.bicep
é compilado usando o bicepconfig.json
localizado na pasta A
, modB.bicep
é compilado com o bicepconfig.json
na pasta B
e, por fim, main.bicep
é compilado usando o bicepconfig.json
na pasta root
.
Na ausência de um arquivo bicepconfig.json
nas pastas A
e B
, todos os três arquivos Bicep são compilados usando o bicepconfig.json
encontrado na pasta root
. Se bicepconfig.json
não estiver presente em nenhuma das pastas, o processo de compilação usará os valores padrão.
Configurar módulos do Bicep
Ao trabalhar com módulos, é possível adicionar aliases para caminhos de módulo. Esses aliases simplificam o arquivo Bicep porque você não precisa repetir caminhos complicados. Você também pode configurar a precedência de credencial para autenticação no Azure por meio da CLI do Bicep e do Visual Studio Code. As credenciais são usadas para publicar módulos em registros e restaurar módulos externos para o cache local ao usar a função inserir recurso. Para obter mais informações, consulte Adicionar configurações de módulo à configuração do Bicep.
Configurar regras do Linter
O linter Bicep verifica os erros de sintaxe e as violações de melhores práticas em arquivos Bicep. Você pode substituir as configurações padrão para a validação do arquivo Bicep modificando bicepconfig.json
. Para obter mais informações, consulte Adicionar configurações de linter à configuração do Bicep.
Habilitar recursos experimentais
Você pode habilitar recursos experimentais adicionando a seção a seguir ao arquivo bicepconfig.json
. O uso de recursos experimentais habilita automaticamente a geração de código da versão 2.0 do idioma.
Aqui está um exemplo de como habilitar os recursos 'asserções' e 'testFramework'.
{
"experimentalFeaturesEnabled": {
"assertions": true,
"testFramework": true
}
}
Para obter informações sobre o conjunto atual de recursos experimentais, consulte Recursos experimentais.