Aggiungere le impostazioni del linter nel file di configurazione Bicep

In un file bicepconfig.json è possibile personalizzare le impostazioni di convalida per il linter Bicep. Linter usa queste impostazioni durante la valutazione dei file Bicep per le procedure consigliate.

Questo articolo descrive le impostazioni disponibili per l'uso del linter Bicep.

Personalizzare il linter

Le impostazioni del linter sono disponibili nell'elemento analyzers. È possibile abilitare o disabilitare linter, specificare valori specifici della regola e impostare il livello di regole.

L'esempio seguente illustra le regole disponibili per la configurazione.

{
  "analyzers": {
    "core": {
      "enabled": true,
      "rules": {
        "adminusername-should-not-be-literal": {
          "level": "warning"
        },
        "artifacts-parameters": {
          "level": "warning"
        },
        "decompiler-cleanup": {
          "level": "warning"
        },
        "explicit-values-for-loc-params": {
          "level": "off"
        },
        "max-asserts": {
          "level": "warning"
        },
        "max-outputs": {
          "level": "warning"
        },
        "max-params": {
          "level": "warning"
        },
        "max-resources": {
          "level": "warning"
        },
        "max-variables": {
          "level": "warning"
        },
        "nested-deployment-template-scoping": {
          "level": "error"
        },
        "no-conflicting-metadata" : {
          "level": "warning"
        },
        "no-deployments-resources" : {
          "level": "warning"
        },
        "no-hardcoded-env-urls": {
          "level": "warning"
        },
        "no-hardcoded-location": {
          "level": "off"
        },
        "no-loc-expr-outside-params": {
          "level": "off"
        },
        "no-unnecessary-dependson": {
          "level": "warning"
        },
        "no-unused-existing-resources": {
          "level": "warning"
        },
        "no-unused-params": {
          "level": "warning"
        },
        "no-unused-vars": {
          "level": "warning"
        },
        "outputs-should-not-contain-secrets": {
          "level": "warning"
        },
        "prefer-interpolation": {
          "level": "warning"
        },
        "prefer-unquoted-property-names": {
          "level": "warning"
        },
        "protect-commandtoexecute-secrets": {
          "level": "warning"
        },
        "secure-parameter-default": {
          "level": "warning"
        },
        "secure-params-in-nested-deploy": {
          "level": "warning"
        },
        "secure-secrets-in-params": {
          "level": "warning"
        },
        "simplify-interpolation": {
          "level": "warning"
        },
        "simplify-json-null": {
          "level": "warning"
        },
        "use-parent-property": {
          "level": "warning"
        },
        "use-recent-api-versions": {
          "level": "warning",
          "maxAllowedAgeInDays": 730
        },
        "use-recent-module-versions": {
          "level": "warning"
        },
        "use-resource-id-functions": {
          "level": "warning"
        },
        "use-resource-symbol-reference": {
          "level": "warning"
        },
        "use-safe-access": {
          "level": "warning"
        },
        "use-secure-value-for-secure-inputs": {
          "level": "error"
        },
        "use-stable-resource-identifiers": {
          "level": "warning"
        },
        "use-stable-vm-image": {
          "level": "warning"
        },
        "what-if-short-circuiting": {
          "level": "warning"
        }
      }
    }
  }
}

Le proprietà sono:

  • abilitato: specificare true per abilitare il linter, false per disabilitare il linter.
  • verbose: specificare true per visualizzare il file bicepconfig.json usato da Visual Studio Code.
  • rules: specificare valori specifici della regola. Ogni regola ha un livello che determina la modalità di risposta del linter quando viene trovata una violazione.

I valori disponibili per livello sono:

level Comportamento in fase di compilazione Comportamento dell'editor
Error Le violazioni vengono visualizzate come errori nell'output della compilazione della riga di comando e causano l'esito negativo della compilazione. Il codice offensivo è sottolineato con una sottolineatura ondulata rossa e viene visualizzato nella scheda Problemi.
Warning Le violazioni vengono visualizzate come avvisi nell'output di compilazione della riga di comando, ma non causano l'esito negativo della compilazione. Il codice offensivo è sottolineato con una sottolineatura ondulata gialla e viene visualizzato nella scheda Problemi.
Info Le violazioni non vengono visualizzate nell'output della compilazione della riga di comando. Il codice offensivo è sottolineato con una sottolineatura a zigzag blu e viene visualizzato nella scheda Problemi.
Off Completamente soppressa. Completamente soppressa.

URL di ambiente

Per la regola sugli URL dell'ambiente hardcoded, è possibile personalizzare gli URL verificati. Per impostazione predefinita, vengono applicate le impostazioni seguenti:

{
  "analyzers": {
    "core": {
      "enabled": true,
      "rules": {
        "no-hardcoded-env-urls": {
          "level": "warning",
          "disallowedhosts": [
            "api.loganalytics.io",
            "api.loganalytics.iov1",
            "asazure.windows.net",
            "azuredatalakeanalytics.net",
            "azuredatalakestore.net",
            "batch.core.windows.net",
            "core.windows.net",
            "database.windows.net",
            "datalake.azure.net",
            "gallery.azure.com",
            "graph.windows.net",
            "login.microsoftonline.com",
            "management.azure.com",
            "management.core.windows.net",
            "region.asazure.windows.net",
            "trafficmanager.net",
            "vault.azure.net"
          ],
          "excludedhosts": [
            "schema.management.azure.com"
          ]
        }
      }
    }
  }
}

Passaggi successivi