Condividi tramite


Aggiungere le impostazioni del linter nel file di configurazione Bicep

In un filebicepconfig.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 lavorare con il linter Bicep.

Personalizzare il linter

Le impostazioni linter sono disponibili nell'elemento analyzers . È possibile abilitare o disabilitare il linter, fornire valori specifici per le regole, e impostare il livello delle 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": "error"
        },
        "max-outputs": {
          "level": "error"
        },
        "max-params": {
          "level": "error"
        },
        "max-resources": {
          "level": "error"
        },
        "max-variables": {
          "level": "error"
        },
        "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-imports": {
          "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": "off",
          "maxAllowedAgeInDays": 730
        },
        "use-recent-module-versions": {
          "level": "off"
        },
        "use-resource-id-functions": {
          "level": "off"
        },
        "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": "off"
        }
      }
    }
  }
}

Le proprietà sono:

  • enabled: specificare true per abilitare linter, false per disabilitare 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 dell'linter quando viene trovata una violazione.

I valori disponibili per il livello sono:

livello 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 errato è sottolineato con una sottolineatura ondulata rossa e compare 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 da riga di comando. Il codice offensivo è sottolineato con una sottolineatura a zigzag blu e viene visualizzato nella scheda Problemi.
Off Soppresso completamente. Soppresso completamente.

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