Hinzufügen von Linter-Einstellungen in der Bicep-Konfigurationsdatei

In einer bicepconfig.json-Datei können Sie die Validierungseinstellungen für den Bicep-Linter anpassen. Der Linter verwendet diese Einstellungen, wenn er Ihre Bicep-Dateien nach den besten Verfahren auswertet.

Dieser Artikel beschreibt die Einstellungen, die für die Arbeit mit dem Bicep-Linter zur Verfügung stehen.

Anpassen des Linters

Die Linter-Einstellungen sind unter dem Element analyzers verfügbar. Sie können den Linter aktivieren oder deaktivieren, regelspezifische Werte angeben und auch die Ebene von Regeln festlegen.

Das folgende Beispiel zeigt die Regeln, die für die Konfiguration verfügbar sind.

{
  "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"
        }
      }
    }
  }
}

Dabei handelt es sich um die folgenden Eigenschaften:

  • enabled: Geben Sie true an, um den Linter zu aktivieren, und false, um den Linter zu deaktivieren.
  • verbose: Geben Sie true an, um die von Visual Studio Code verwendete „bicepconfig.json“-Datei anzuzeigen.
  • rules: Geben Sie regelspezifische Werte an. Jede Regel verfügt über eine Ebene, die bestimmt, wie der Linter reagiert, wenn ein Verstoß gefunden wird.

Die verfügbaren Werte für level (Eben) lauten:

level Verhalten zur Buildzeit Editor-Verhalten
Error Verstöße werden in der Buildausgabe der Befehlszeile als Fehler angezeigt und bewirken ein Fehlschlagen des Buildvorgangs. Fehlerhafter Code wird mit einer roten Wellenlinie unterstrichen und auf der Registerkarte mit den Problemen angezeigt.
Warning Verstöße werden in der Buildausgabe der Befehlszeile als Warnungen angezeigt, führen aber nicht zum Fehlschlagen des Buildvorgangs. Fehlerhafter Code wird mit einer gelben Wellenlinie unterstrichen und auf der Registerkarte mit den Problemen angezeigt.
Info Verstöße erscheinen in der Befehlszeilenausgabe des Builds nicht. Fehlerhafter Code wird mit einer blauen Wellenlinie unterstrichen und auf der Registerkarte mit den Problemen angezeigt.
Off Vollständig unterdrückt. Vollständig unterdrückt.

Environment URLs

Für die Regel zu hartcodierten Umgebungs-URLs können Sie anpassen, welche URLs aktiviert sind. Standardmäßig werden die folgenden Einstellungen angewendet:

{
  "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"
          ]
        }
      }
    }
  }
}

Nächste Schritte