Linter-regel - geen vastgelegde omgevings-URL

Met deze regel worden in code vastgelegde URL's gevonden die variëren per cloudomgeving.

Linter-regelcode

Gebruik de volgende waarde in het Bicep-configuratiebestand om regelinstellingen aan te passen:

no-hardcoded-env-urls

Oplossing

In plaats van url's in uw Bicep-bestand hard te coderen, gebruikt u de omgevingsfunctie om deze URL's dynamisch op te halen tijdens de implementatie. De omgevingsfunctie retourneert verschillende URL's op basis van de cloudomgeving waarin u implementeert.

Het volgende voorbeeld mislukt deze test omdat de URL is vastgelegd.

var managementURL = 'https://management.azure.com'

De test mislukt ook wanneer deze wordt gebruikt met concat of URI.

var galleryURL1 = concat('https://','gallery.azure.com')
var galleryURL2 = uri('gallery.azure.com','test')

U kunt dit oplossen door de in code vastgelegde URL te vervangen door de environment() functie.

var galleryURL = environment().gallery

In sommige gevallen kunt u dit oplossen door een eigenschap op te halen uit een resource die u hebt geïmplementeerd. In plaats van bijvoorbeeld het eindpunt voor uw opslagaccount te maken, haalt u het op met .properties.primaryEndpoints.

param storageAccountName string
param location string = resourceGroup().location

resource sa 'Microsoft.Storage/storageAccounts@2022-09-01' = {
  name: storageAccountName
  location: location
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
  properties: {
    accessTier: 'Hot'
  }
}

output endpoint string = sa.properties.primaryEndpoints.web

Configuratie

Deze regel gebruikt standaard de volgende instellingen om te bepalen welke URL's niet zijn toegestaan.

"analyzers": {
  "core": {
    "verbose": false,
    "enabled": true,
    "rules": {
      "no-hardcoded-env-urls": {
        "level": "warning",
        "disallowedhosts": [
          "gallery.azure.com",
          "management.core.windows.net",
          "management.azure.com",
          "database.windows.net",
          "core.windows.net",
          "login.microsoftonline.com",
          "graph.windows.net",
          "trafficmanager.net",
          "datalake.azure.net",
          "azuredatalakestore.net",
          "azuredatalakeanalytics.net",
          "vault.azure.net",
          "api.loganalytics.io",
          "asazure.windows.net",
          "region.asazure.windows.net",
          "batch.core.windows.net"
        ],
        "excludedhosts": [
          "schema.management.azure.com"
        ]
      }
    }
  }
}

U kunt het aanpassen door een bicepconfig.json-bestand toe te voegen en nieuwe instellingen toe te passen.

Volgende stappen

Zie Bicep linter gebruiken voor meer informatie over de linter.