Configure seu ambiente Bicep
O Bicep suporta 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, consulte Compreender o processo de mesclagem. Para personalizar uma configuração, crie um arquivo de configuração no mesmo diretório ou em um diretório pai dos arquivos do Bicep. Se houver vários diretórios pai contendo arquivos bicepconfig.json , o Bicep usará a configuração do diretório mais próximo. Para obter mais informações, consulte Compreender o processo de resolução de arquivos.
Para definir as configurações da extensão Bicep, consulte Código do Visual Studio 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, consulte Criar arquivo de configuração do Bicep.
A extensão Bicep para Visual Studio Code suporta IntelliSense para arquivos bicepconfig.json . Use o IntelliSense para descobrir propriedades e valores disponíveis.
Compreender o processo de fusão
O arquivo bicepconfig.json passa por um processo de mesclagem recursivo de baixo para cima com o arquivo de configuração padrão. Durante o processo de fusão, 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 no resultado final. Por outro lado, se existir 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 forma:
{
"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.
Compreender o processo de resolução de ficheiros
O arquivo bicepconfig.json pode ser colocado no mesmo diretório ou em um diretório pai de seus 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 pastas dada, onde cada pasta tem um arquivo bicepconfig.json :
Se você compilar child
main.bicep na pasta, o arquivo bicepconfig.json na child
pasta será usado. Os arquivos de configuração na parent
pasta e na root
pasta são ignorados. Se a pasta não contiver um arquivo de configuração, o child
Bicep procurará uma configuração na parent
pasta e, em seguida, na root
pasta. Se um arquivo de configuração não for encontrado em nenhuma das pastas, o Bicep usará como padrão 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 sua bicepconfig.json correspondente. No cenário a seguir, modA.bicep
é compilado usando o bicepconfig.json localizado na A
pasta, modB.bicep
é compilado com o bicepconfig.json na B
pasta e, finalmente, main.bicep é compilado usando o bicepconfig.json na root
pasta.
Na ausência de um arquivo bicepconfig.json nas A
pastas e B
, todos os três arquivos Bicep são compilados usando o bicepconfig.json encontrado na root
pasta. Se bicepconfig.json não estiver presente em nenhuma das pastas, o padrão da compilação será usar os valores padrão.
Configurar módulos Bicep
Ao trabalhar com módulos, você pode adicionar aliases para caminhos de módulo. Esses aliases simplificam seu arquivo Bicep porque você não precisa repetir caminhos complicados. Você também pode configurar o perfil de nuvem e a precedência de credenciais para autenticação no Azure a partir 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 do Bicep verifica os arquivos do Bicep em busca de erros de sintaxe e violações de práticas recomendadas. Você pode modificar um arquivo bicepconfig.json para substituir as configurações padrão de como um arquivo Bicep é validado. Para obter mais informações, consulte Adicionar configurações de linter à configuração do Bicep.
Ativar funcionalidades experimentais
Você pode habilitar recursos experimentais adicionando a seção a seguir ao seu 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 ativação dos recursos 'assertions' e 'testFramework'.
{
"experimentalFeaturesEnabled": {
"assertions": true,
"testFramework": true
}
}
Consulte Recursos experimentais para obter mais informações sobre os recursos experimentais do Bicep.
Próximos passos
- Saiba como adicionar configurações de módulo e configurações de linter no arquivo de configuração do Bicep.
- Saiba mais sobre o Linter Bicep.