Share via


Linter szabály – nincs rögzített környezeti URL-cím

Ez a szabály megkeresi a felhőkörnyezettől függően változó, szigorúan kódolt URL-címeket.

Linter-szabály kódja

A bicep-konfigurációs fájlban a következő érték használatával szabhatja testre a szabálybeállításokat:

no-hardcoded-env-urls

Megoldás

A Bicep-fájlban lévő url-címek helyett a környezeti függvény használatával dinamikusan lekérheti ezeket az URL-címeket az üzembe helyezés során. A környezeti függvény különböző URL-címeket ad vissza az üzembe helyezendő felhőkörnyezet alapján.

Az alábbi példa azért nem felel meg a tesztnek, mert az URL-cím keményen van kódolva.

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

A teszt akkor is meghiúsul, ha összefűzéssel vagy uri-val használják.

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

A hibát kijavíthatja, ha a rögzített URL-címet a függvényre cseréli environment() .

var galleryURL = environment().gallery

Bizonyos esetekben kijavíthatja, ha lekért egy tulajdonságot egy üzembe helyezett erőforrásból. Például a tárfiók végpontjának létrehozása helyett kérje le a következővel .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

Konfiguráció

Ez a szabály alapértelmezés szerint a következő beállításokat használja annak meghatározásához, hogy mely URL-címek legyenek letiltva.

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

Testre szabhatja egy bicepconfig.json fájl hozzáadásával és új beállítások alkalmazásával.

Következő lépések

A linterről további információt a Bicep-linter használata című témakörben talál.