Configurar seu ambiente Bicep
O Bicep dá suporte a um arquivo de configuração 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 a extensão VS Code e 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 do 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
nas pastas, 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 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.
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
}
}
Consulte Recursos Experimentais para obter mais informações sobre os recursos experimentais do Bicep.
Próximas etapas
- Saiba como adicionar configurações de módulo e configurações de linter no arquivo de configuração Bicep.
- Saiba mais sobre o linter do Bicep.