Partager via


Ajouter des paramètres de linter dans le fichier config Bicep

Dans un fichier bicepconfig.json, vous pouvez personnaliser les paramètres de validation du linter Bicep. Le linter utilise ces paramètres lors de l’évaluation de vos fichiers Bicep selon les meilleures pratiques.

Cet article décrit les paramètres disponibles pour l’utilisation du linter Bicep.

Personnaliser le linter

Les paramètres du linter sont accessibles sous l’élément analyzers. Vous pouvez activer ou désactiver le linter, fournir des valeurs spécifiques à des règles et définir le niveau de règles.

L’exemple suivant montre les règles qui sont disponibles pour la configuration.

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

Les propriétés sont les suivantes :

  • enabled : indiquez true pour activer le linter, false pour le désactiver.
  • verbose : indiquez true pour afficher le fichier bicepconfig.json utilisé par Visual Studio Code.
  • rules : indiquez des valeurs spécifiques aux règles. Chaque règle a un niveau qui détermine la manière dont le linter répond lorsqu’une violation est trouvée.

Les valeurs disponibles pour level sont :

level Comportement lors de la création Comportement de l’éditeur
Error Les violations apparaissent sous forme d’erreurs dans la sortie de build de la ligne de commande et entraînent l’échec de la build. Le code incriminé est souligné d’un tilde rouge et apparaît sous l’onglet Problèmes.
Warning Les violations apparaissent sous forme d’avertissements dans la sortie de build de la ligne de commande, mais n’entraînent pas l’échec de la build. Le code incriminé est souligné d’un tilde jaune et apparaît sous l’onglet Problèmes.
Info Les violations n’apparaissent pas dans la sortie de la génération de la ligne de commande. Le code incriminé est souligné d’un tilde bleu et apparaît sous l’onglet Problèmes.
Off Entièrement supprimé. Entièrement supprimé.

URL d’environnement

Pour la règle relative aux URL d’environnement codées en dur, vous pouvez choisir quelles URL sont vérifiées. Par défaut, les paramètres suivants sont appliqués :

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

Étapes suivantes