Compartilhar via


Usar o linter do Bicep

O linter Bicep verifica os erros de sintaxe e as violações de práticas recomendadas em arquivos Bicep. O linter ajuda a impor padrões de codificação fornecendo diretrizes durante o desenvolvimento. Você pode personalizar melhores práticas de criação a serem usadas para verificar o arquivo.

Requisitos do Linter

O linter está integrado à CLI do Bicep e à extensão do Bicep para Visual Studio Code. Para usá-lo, você deve ter a CLI do Bicep versão 0.4 ou posterior.

Regras padrão

O conjunto padrão de regras de linter é mínimo e retirado de casos de teste arm-ttk. A extensão e a CLI do Bicep verificam as regras a seguir, que são definidas para o nível de aviso.

Regra do Linter Nível padrão
nomeadministrador-não-deve-ser-literal aviso
artifacts-parameters aviso
decompiler-cleanup aviso
valores-explícitos-para-parametros-de-loc Desligar
max-asserts erro
max-outputs erro
max-params erro
max-resources erro
max-variables erro
nested-deployment-template-scoping erro
metadados sem conflitos aviso
no-deployments-resources aviso
no-explicit-any aviso
no-hardcoded-env-urls aviso
no-hardcoded-___location Desligar
no-loc-expr-outside-params Desligar
no-unnecessary-dependson aviso
sem-recursos-existentes-não-utilizados aviso
sem importações não utilizadas aviso
no-unused-params aviso
no-unused-vars aviso
saídas-não-devem-conter-segredos aviso
prefer-interpolation aviso
prefer-unquoted-property-names aviso
protect-commandtoexecute-secrets aviso
parâmetro-padrão-seguro aviso
secure-params-in-nested-deploy aviso
secure-secrets-in-params aviso
simplificação da interpolação aviso
simplify-json-null aviso
use-parent-property aviso
use-recent-api-versions Desligar
use-recent-az-powershell-version aviso
utilizar-versões-recentes-do-módulo Desligar
use-resource-id-functions Desligar
use-resource-symbol-reference aviso
use-safe-access aviso
use-secure-value-for-secure-inputs aviso
usar-identificadores-de-recurso-estáveis aviso
use-stable-vm-image aviso
what-if-short-circuiting Desligar

Você pode habilitar ou desabilitar todas as regras de linter e controlar como elas são aplicadas usando um arquivo de configuração. Para substituir o comportamento padrão, crie um arquivo bicepconfig.json com suas configurações personalizadas. Para obter mais informações sobre como aplicar essas configurações, confira Adicionar configurações personalizadas no arquivo de configuração bicep.

Usar no Visual Studio Code

A seguinte captura de tela mostra o linter no Visual Studio Code:

Uso de linter do Bicep no Visual Studio Code.

No painel PROBLEMAS, há quatro erros, um aviso e uma mensagem de informações mostrada na captura de tela. A mensagem de informações mostra o arquivo de configuração de Bicep usado. Ele só mostra essa informação quando você definir verbose como true no arquivo de configuração.

Passe o cursor do mouse em uma das áreas com problema. O linter fornece os detalhes sobre o erro ou aviso. Uma lâmpada azul também será exibida ao selecionar a área:

Uso de linter do Bicep no Visual Studio Code - mostrar correção rápida.

Selecione a lâmpada ou o link Correção rápida para ver a solução:

Uso de linter do Bicep no Visual Studio Code - mostrar solução de correção rápida.

Selecione a solução para corrigir o problema automaticamente.

Usar na CLI do Bicep

A captura de tela a seguir mostra o linter na linha de comando. A saída do comando lint e do comando de build mostra quaisquer violações de regra.

Uso de linter Bicep na linha de comando.

Você pode integrar essas verificações como parte de seus pipelines de CI/CD. Você pode usar uma ação do GitHub para tentar um build do Bicep. Erros irão fazer com que os pipelines falhem.

Silenciar falsos positivos

Às vezes, uma regra pode ter falsos positivos. Por exemplo, talvez seja necessário incluir um link para um armazenamento de blobs diretamente sem usar a função environment(). Nesse caso, você pode desabilitar o aviso apenas para uma linha, não para todo o documento, adicionando #disable-next-line <rule name> antes da linha com o aviso.

#disable-next-line no-hardcoded-env-urls //Direct download link to my toolset
scriptDownloadUrl: 'https://mytools.blob.core.windows.net/...'

É uma boa prática adicionar um comentário explicando por que a regra não se aplica a esta linha.

Se você quiser suprimir uma regra linter, poderá alterar o nível da regra para Off em bicepconfig.json. No seguinte exemplo, a regra no-deployments-resources foi suprimida:

{
  "analyzers": {
    "core": {
      "rules": {
        "no-deployments-resources": {
          "level": "off"
        }
      }
    }
  }
}

Próximas etapas