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 a configuração, crie um arquivo de configuração no mesmo diretório ou um diretório pai dos arquivos do Bicep. Se houver vários diretórios pai contendo bicepconfig.json arquivos, 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 VS Code e Bicep extension.

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 bicepconfig.json arquivo 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 VS Code.

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

Captura de tela do suporte do intellisense na configuração do bicepconfig.json.

Compreender o processo de fusão

O bicepconfig.json arquivo 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 é definido da bicepconfig.json 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 o valor de e cloud.moduleAliases.CoreModules são acrescentados cloud.moduleAliases.ContosoRegistry na configuração mesclada.

Compreender o processo de resolução de ficheiros

O bicepconfig.json arquivo 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 bicepconfig.json arquivos, o Bicep usará o arquivo de configuração do diretório mais próximo. Por exemplo, na estrutura de pastas dada, onde cada pasta tem um bicepconfig.json arquivo:

Um diagrama mostrando a resolução de 'bicepconfig.json' encontrada em várias pastas pai.

Se você compilar main.bicep child na pasta, o bicepconfig.json arquivo 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 nenhum arquivo de configuração for encontrado em qualquer uma 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 arquivo bicepconfig.json. Em seguida, o arquivo Bicep principal é compilado com seu correspondente bicepconfig.json. No cenário a seguir, modA.bicep é compilado usando o bicepconfig.json localizado na A pasta, modB.bicep é compilado com o na B pasta e, finalmente, main.bicep é compilado bicepconfig.json usando o bicepconfig.json na root pasta.

Um diagrama mostrando a resolução de 'bicepconfig.json' encontrada em várias pastas pai com o cenário do módulo.

Na ausência de um bicepconfig.json arquivo 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 processo de compilação assume como padrão o uso dos 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 substituir as configurações padrão para a validação do arquivo Bicep modificando bicepconfig.jsono . 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 bicepconfig.json arquivo. 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
  }
}

Para obter informações sobre o conjunto atual de recursos experimentais, consulte Recursos experimentais.

Próximos passos