Partilhar via


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.

Captura de tela de como criar o arquivo de configuração Bicep no Visual Studio Code.

A extensão Bicep para Visual Studio Code suporta IntelliSense para arquivos bicepconfig.json . Use o IntelliSense para descobrir propriedades e valores disponíveis.

Captura de tela do IntelliSense suportando uma configuração de arquivo _bicepconfig.json_.

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 :

Um diagrama mostrando a resolução de um arquivo _bicepconfig.json_ encontrado em várias pastas pai.

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.

Um diagrama mostrando o arquivo _bicepconfig.json_ encontrado em várias pastas pai com o cenário do módulo.

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