قاعدة Linter - لا يوجد عنوان URL للبيئة مشفرة

تجد هذه القاعدة على أي عناوين URL ذات تشفير ثابت تختلف حسب بيئة السحابة.

التعليمة البرمجية لقاعدة Linter

استخدم القيمة التالية في ملف تكوين Bicep لتخصيص إعدادات القاعدة:

no-hardcoded-env-urls

حل

بدلاً من تشفير عناوين URL في ملف Bicep الخاص بك، استخدم وظيفة البيئة للحصول على عناوين URL هذه ديناميكياً أثناء النشر. ترجع وظيفة البيئة عناوين URL مختلفة استناداً إلى بيئة السحابة التي تقوم بنشرها.

فشل المثال التالي في هذا الاختبار لأن عنوان URL مشفر بشكل ثابت.

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

يفشل الاختبار أيضاً عند استخدامه مع concat أو uri.

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

يمكنك إصلاحه عن طريق استبدال عنوان URL الثابت المرمز بالدالة environment().

var galleryURL = environment().gallery

في بعض الحالات، يمكنك إصلاحه عن طريق الحصول على خاصية من مورد قمت بنشره. على سبيل المثال، بدلاً من إنشاء نقطة النهاية لحساب التخزين الخاص بك، قم باسترجاعها باستخدام .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

التكوين

افتراضياً، تستخدم هذه القاعدة الإعدادات التالية لتحديد عناوين URL غير المسموح بها.

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

يمكنك تخصيصه عن طريق إضافة ملف bicepconfig.json وتطبيق إعدادات جديدة.

الخطوات التالية

لمزيد من المعلومات حول linter، راجعاستخدام Bicep linter.