تكوين بيئة Bicep الخاصة بك

يدعم Bicep ملف تكوين اختياري يسمى bicepconfig.json. ضمن هذا الملف، يمكنك إضافة القيم التي تخصص تجربة تطوير Bicep الخاص بك. يتم دمج هذا الملف مع ملف التكوين الافتراضي. لمزيد من المعلومات، راجع فهم عملية الدمج. لتخصيص التكوين، قم بإنشاء ملف تكوين في نفس الدليل أو دليل أصل لملفات Bicep. إذا كان هناك عدة أدلة أصل تحتوي على bicepconfig.json ملفات، يستخدم Bicep التكوين من أقرب واحد. لمزيد من المعلومات، راجع فهم عملية تحليل الملف.

لتكوين إعدادات ملحق Bicep، راجع VS Code وملحق Bicep.

إنشاء ملف التكوين في Visual Studio Code

يمكنك استخدام أي محرر نص لإنشاء ملف التكوين.

لإنشاء bicepconfig.json ملف في Visual Studio Code، افتح لوحة الأوامر ([CTRL/CMD]+[SHIFT]+P)، ثم حدد Bicep: Create Bicep Configuration File. لمزيد من المعلومات، راجع إنشاء ملف تكوين Bicep.

Screenshot of how to create Bicep configuration file in VS Code.

يدعم ملحق Bicep ل Visual Studio Code التحسس الذكي لملفك bicepconfig.json . استخدم ميزة intellisense لاكتشاف الخصائص والقيم المتوفرة.

Screenshot of the intellisense support in configuring bicepconfig.json.

فهم عملية الدمج

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

ضع في اعتبارك سيناريو يتم فيه تعريف التكوين الافتراضي كما يلي:

{
  "cloud": {
    ...
    "credentialPrecedence": [
      "AzureCLI",
      "AzurePowerShell"
    ]
  },
  "moduleAliases": {
    "ts": {},
    "br": {
      "public": {
        "registry": "mcr.microsoft.com",
        "modulePath": "bicep"
      }
    }
  },
  ...
}

bicepconfig.json ويتم تعريف على النحو التالي:

{
  "cloud": {
    "credentialPrecedence": [
      "AzurePowerShell",
      "AzureCLI"
    ]
  },
  "moduleAliases": {
    "br": {
      "ContosoRegistry": {
        "registry": "contosoregistry.azurecr.io"
      },
      "CoreModules": {
        "registry": "contosoregistry.azurecr.io",
        "modulePath": "bicep/modules/core"
      }
    }
  }
}

سيكون التكوين المدمج الناتج:

{
  "cloud": {
    ...
    "credentialPrecedence": [
      "AzurePowerShell",
      "AzureCLI"
    ]
  },
  "moduleAliases": {
    "ts": {},
    "br": {
      "public": {
        "registry": "mcr.microsoft.com",
        "modulePath": "bicep"
      },
      "ContosoRegistry": {
        "registry": "contosoregistry.azurecr.io"
      },
      "CoreModules": {
        "registry": "contosoregistry.azurecr.io",
        "modulePath": "bicep/modules/core"
      }
    }
  },
  ...
}

في المثال السابق، يتم استبدال قيمة cloud.credentialPrecedence ، بينما يتم إلحاق قيمة cloud.moduleAliases.ContosoRegistry و cloud.moduleAliases.CoreModules في التكوين المدمج.

فهم عملية تحليل الملف

bicepconfig.json يمكن وضع الملف في نفس الدليل أو دليل أصل لملفات Bicep. إذا كان هناك العديد من الدلائل الأصلية التي bicepconfig.json تحتوي على ملفات، يستخدم Bicep ملف التكوين من أقرب واحد. على سبيل المثال، في بنية المجلد المحدد حيث يحتوي كل مجلد على bicepconfig.json ملف:

A diagram showing resolving `bicepconfig.json` found in multiple parent folders.

إذا قمت بالتحويل main.bicep البرمجي في child المجلد، bicepconfig.json يتم استخدام الملف في child المجلد. يتم تجاهل ملفات التكوين في parent المجلد والمجلد root . child إذا لم يحتوي المجلد على ملف تكوين، يبحث Bicep عن تكوين في parent المجلد ثم المجلدroot. إذا لم يتم العثور على ملف تكوين في أي من المجلدات، فسيتم تعيين Bicep افتراضيا على استخدام القيم الافتراضية.

في سياق ملف Bicep الذي يستدعي وحدات نمطية متعددة، تخضع كل وحدة برمجية باستخدام أقرب bicepconfig.json. ثم، يتم تحويل ملف Bicep الرئيسي برمجيا مع المطابق له bicepconfig.json. في السيناريو التالي، modA.bicep يتم تحويلها برمجيا باستخدام bicepconfig.json الموجود في A المجلد، modB.bicep ويتم تحويلها برمجيا مع bicepconfig.json في B المجلد، وأخيرا، main.bicep يتم تحويلها برمجيا باستخدام bicepconfig.json في root المجلد .

A diagram showing resolving `bicepconfig.json` found in multiple parent folders with the module scenario.

في حالة عدم وجود bicepconfig.json ملف في A المجلدين و B ، يتم تجميع جميع ملفات Bicep الثلاثة باستخدام الموجودة bicepconfig.json في root المجلد . إذا bicepconfig.json لم يكن موجودا في أي من المجلدات، فإن عملية التحويل البرمجي افتراضيا لاستخدام القيم الافتراضية.

تكوين وحدات Bicep النمطية

عند العمل مع الوحدات، يمكنك إضافة أسماء مستعارة لمسارات الوحدة. تعمل هذه الأسماء المستعارة على تبسيط ملف Bicep لأنه لا يتعين عليك تكرار المسارات المعقدة. يمكنك أيضا تكوين ملف تعريف السحابة وأسبقية بيانات الاعتماد للمصادقة على Azure من Bicep CLI وVisual Studio Code. يتم استخدام بيانات الاعتماد لنشر الوحدات النمطية إلى السجلات واستعادة الوحدات النمطية الخارجية إلى ذاكرة التخزين المؤقت المحلية عند استخدام دالة إدراج المورد. لمزيد من المعلومات، راجع إضافة إعدادات الوحدة النمطية إلى تكوين Bicep.

تكوين قواعد Linter

تتحقق أداة تحليل Bicep من ملفات Bicep من أخطاء بناء الجملة وانتهاكات أفضل الممارسات. يمكنك تجاوز الإعدادات الافتراضية للتحقق من صحة ملف Bicep عن طريق تعديل bicepconfig.json. لمزيد من المعلومات، راجع إضافة إعدادات linter إلى تكوين Bicep.

تمكين الميزات التجريبية

يمكنك تمكين الميزات التجريبية عن طريق إضافة القسم التالي إلى ملفك bicepconfig.json .

فيما يلي مثال على تمكين الميزات "compileTimeImports" و"userDefinedFunctions".

{
  "experimentalFeaturesEnabled": {
    "compileTimeImports": true,
    "userDefinedFunctions": true
  }
}

للحصول على معلومات حول المجموعة الحالية من الميزات التجريبية، راجع الميزات التجريبية.

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