Přidejte nastavení linteru do konfiguračního souboru Bicep

V souboru bicepconfig.json můžete nastavit a upravit parametry kontroly pro Bicep linter. Při vyhodnocování souborů Bicep pro osvědčené postupy používá linter tato nastavení.

Tento článek popisuje nastavení, která jsou k dispozici pro práci s linterem Bicep.

Přizpůsobení linteru

Najděte nastavení linter pod prvkem analyzers . Použijte tato nastavení k zapnutí nebo vypnutí linky, zadání hodnot specifických pro pravidla a nastavení úrovně pravidel.

Následující příklad ukazuje pravidla, která můžete nakonfigurovat.

{
  "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-explicit-any": {
          "level": "warning"
        },
        "no-hardcoded-env-urls": {
          "level": "warning"
        },
        "no-hardcoded-location": {
          "level": "off"
        },
        "no-hardcoded-outputs": {
          "level": "off"
        },
        "no-loc-expr-outside-params": {
          "level": "off"
        },
        "no-module-name": {
          "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-types": {
          "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-params-in-parameters-file": {
          "level": "warning"
        },
        "secure-secrets-in-params": {
          "level": "warning"
        },
        "simplify-interpolation": {
          "level": "warning"
        },
        "simplify-json-null": {
          "level": "warning"
        },
        "use-description-outputs": {
          "level": "off"
        },
        "use-description-params": {
          "level": "off"
        },
        "use-description-type-properties": {
          "level": "off"
        },
        "use-description-types": {
          "level": "off"
        },
        "use-description-vars": {
          "level": "off"
        },
        "use-parent-property": {
          "level": "warning"
        },
        "use-recent-api-versions": {
          "level": "off",
          "maxAgeInDays": 730,
          "gracePeriodInDays": 90
        },
        "use-recent-module-versions": {
          "level": "off"
        },
        "use-recognized-resource-type": {
          "level": "warning"
        },
        "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"
        },
        "use-user-defined-types": {
          "level": "off"
        },
        "what-if-short-circuiting": {
          "level": "off"
        }
      }
    }
  }
}

Vlastnosti zahrnují:

  • enabled: Zadejte true pro povolení linteru, false pro jeho zakázání.
  • Podrobně: Zadejte true pro zobrazení souboru bicepconfig.json používaného Visual Studio Code.
  • pravidla: zadejte hodnoty specifické pro pravidlo. Každé pravidlo má úroveň, která určuje, jak linter reaguje, když narazí na porušení.

Dostupné hodnoty pro úroveň jsou:

úroveň Chování při sestavení Chování editoru
Error Porušení se zobrazují jako chyby ve výstupu sestavení na příkazovém řádku a způsobují selhání sestavení. Chybový kód je podtržený červenou vlnovkou a objeví se na kartě Problémy.
Warning Porušení se zobrazí jako upozornění ve výstupu sestavení příkazového řádku, ale nezpůsobí selhání sestavení. Chybový kód je podtržen žlutou vlnovkou a objeví se na kartě Problémy.
Info Ve výstupu sestavení příkazového řádku se nezobrazují porušení. Chybný kód je podtržený modrým vlnovkovým čárkováním a zobrazuje se v panelu Problemy.
Off Úplně potlačeno Úplně potlačeno

Adresy URL prostředí

Pro pravidlo o hardkódovaných URL prostředí si upravte, které URL jsou zaškrtnuty. Ve výchozím nastavení se použijí následující nastavení:

{
  "analyzers": {
    "core": {
      "enabled": true,
      "rules": {
        "no-hardcoded-env-urls": {
          "level": "warning",
          "disallowedhosts": [
            "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",
            "vault.azure.net"
          ],
          "excludedhosts": [
            "schema.management.azure.com"
          ]
        }
      }
    }
  }
}

Další kroky