Linter kuralı - sabit kodlanmış ortam URL'si yok

Bu kural, bulut ortamına göre değişen sabit kodlanmış URL'leri bulur.

Linter kural kodu

Kural ayarlarını özelleştirmek için Bicep yapılandırma dosyasında aşağıdaki değeri kullanın:

no-hardcoded-env-urls

Çözüm

Bicep dosyanızda URL'leri sabit kodlamak yerine ortam işlevini kullanarak dağıtım sırasında bu URL'leri dinamik olarak alın. ortam işlevi, dağıttığınız bulut ortamına göre farklı URL'ler döndürür.

AŞAĞıDAKI örnek, URL sabit kodlanmış olduğundan bu testte başarısız olur.

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

Test, concat veya uri ile kullanıldığında da başarısız olur.

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

Sabit kodlanmış URL'yi işleviyle environment() değiştirerek düzeltebilirsiniz.

var galleryURL = environment().gallery

Bazı durumlarda, dağıtmış olduğunuz bir kaynaktan özellik alarak bunu düzeltebilirsiniz. Örneğin, depolama hesabınız için uç noktayı oluşturmak yerine ile alın .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

Yapılandırma

Varsayılan olarak, bu kural hangi URL'lere izin verilmeyenleri belirlemek için aşağıdaki ayarları kullanır.

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

bir bicepconfig.json dosyası ekleyip yeni ayarlar uygulayarak dosyayı özelleştirebilirsiniz.

Sonraki adımlar

Lint hakkında daha fazla bilgi için bkz . Bicep linter'i kullanma.