Adición de una configuración de linter en el archivo de configuración de Bicep

En un archivo bicepconfig.json, puede personalizar la configuración de validación para el linter de Bicep. Linter usa esta configuración al evaluar los archivos de Bicep para los procedimientos recomendados.

En este artículo se describe la configuración disponible para trabajar con el linter de Bicep.

Personalización de linter

La configuración de linter está disponible en el elemento analyzers. Puede habilitar o deshabilitar el linter, proporcionar valores específicos de la regla y establecer el nivel de reglas.

En el ejemplo siguiente se muestran las reglas que están disponibles para la configuración.

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

Las propiedades son las siguientes:

  • enabled: especifique true para habilitar el linter o false para deshabilitarlo.
  • verbose: especifique true para mostrar el archivo bicepconfig.json empleado por Visual Studio Code.
  • rules: especifique los valores específicos de la regla. Cada regla tiene un nivel que determina cómo responde el linter cuando se detecta una infracción.

Los valores disponibles de level son los siguientes:

level Comportamiento en tiempo de compilación Comportamiento del editor
Error Las infracciones aparecen como Errores en la salida de compilación de la línea de comandos y provocan un error de compilación. El código incorrecto se subraya en rojo y aparece en la pestaña Problemas.
Warning Las infracciones aparecen como Advertencias en la salida de compilación de la línea de comandos, pero no provocan un error de compilación. El código incorrecto se subraya en amarillo y aparece en la pestaña Problemas.
Info Las infracciones no aparecen en la salida de compilación de la línea de comandos. El código incorrecto se subraya en azul y aparece en la pestaña Problemas.
Off Se suprime por completo. Se suprime por completo.

Direcciones URL de entorno

En el caso de la regla sobre las direcciones URL de entorno codificadas de forma rígida, puede personalizar las direcciones URL que se comprueban. De manera predeterminada, se aplican los siguientes valores:

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

Pasos siguientes