Sdílet prostřednictvím


Pravidlo Linter – žádná pevně zakódovaná adresa URL prostředí

Toto pravidlo najde všechny pevně zakódované adresy URL, které se liší podle cloudového prostředí.

Kód pravidla Linteru

K přizpůsobení nastavení pravidel použijte v konfiguračním souboru Bicep následující hodnotu:

no-hardcoded-env-urls

Řešení

Místo pevně zakódovaných adres URL v souboru Bicep použijte funkci prostředí k dynamickému získání těchto adres URL během nasazování. Funkce prostředí vrátí různé adresy URL v závislosti na cloudovém prostředí, do které nasazujete.

Následující příklad tento test selže, protože adresa URL je pevně zakódovaná.

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

Test také selže při použití s concatem nebo identifikátorem URI.

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

Můžete ji opravit nahrazením pevně zakódované adresy URL environment() funkcí.

var galleryURL = environment().gallery

V některých případech ji můžete vyřešit získáním vlastnosti z nasazeného prostředku. Například místo vytvoření koncového bodu pro váš účet úložiště ho načtěte pomocí .properties.primaryEndpoints.

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

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

output endpoint string = sa.properties.primaryEndpoints.web

Konfigurace

Ve výchozím nastavení toto pravidlo používá následující nastavení k určení, které adresy URL jsou zakázány.

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

Můžete ho přizpůsobit přidáním souboru bicepconfig.json a použitím nových nastavení.

Další kroky

Další informace o linteru naleznete v tématu Použití linter Bicep.