نشر تعليمة Bicep البرمجية من مسار التوزيع

مكتمل

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

مواصفات ووحدات القالب

يمكِّنك Bicep من إعادة استخدام تعليماتك البرمجية بسهولة. هناك طريقتان شائعتان لإعادة استخدام تعليمة Bicep البرمجية عبر عمليات التوزيع هما:

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

عندما تقرر بين مواصفات القالب ووحدات Bicep، فإن القاعدة الجيدة المجربة هي: إذا كان القالب سيجري توزيعه كما هو الحال في جميع أنحاء مؤسستك، فمن المحتمل أن تكون مواصفات القالب مناسبةً تماماً. ولكن إذا كنت من المحتمل أن تعيد استخدام هذا القالب ضمن قوالب أصلية متعددة، فقد تخدم وحدات Bicep احتياجاتك على نحوٍ أفضل.

تحقق من صحة التعليمات البرمجية القابلة لإعادة الاستخدام في البنية الأساسية

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

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

بالإضافة إلى تحليل الأخطاء، قد ترغب في التفكير في اختبار مواصفات قالبك ووحداتك باستخدام التحقق من صحة الاختبار المبدئي. قد تفكر أيضاً في توزيع مواصفات ووحدات قالب على Azure واختبار أن الموارد التي ينشئونها تتصرف بالشكل الذي تتوقعه. ومع ذلك، قد يكون من الصعب تشغيل هذه الأنواع من الاختبارات من البنية الأساسية للتوزيع لسببين:

  • يتطلب التحقق من صحة الاختبار المبدئي وعمليات التوزيع بيئة Azure لتوزيع الموارد إليها. قد تحتاج إلى الاحتفاظ باشتراك Azure مخصص أو مجموعة موارد لاستخدامها في توزيع وحداتك واختبارها.
  • تتطلب منك العديد من مواصفات ووحدات القوالب تحديد مجموعة من المعلمات. قد تحتاج إلى إنشاء مجموعة اختبار من المعلمات لمواصفات قالبك ووحداتك لاستخدامها عند توزيعها.

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

تلميح

نوصيك بمراجعة اختبار تعليمة Bicep البرمجية باستخدام Azure Pipelines للحصول على مزيد من المعلومات عن كيفية اختبار ملفات Bicep خاصتك في البنية الأساسية التلقائية.

المصادقة والتخويل

عند نشر مواصفات القالب إلى Azure بنفسك، يجب منح مستخدم Microsoft Entra حق الوصول إلى مجموعة الموارد التي تحتوي على مورد مواصفات القالب. وبالمثل، عند نشر وحدة Bicep إلى سجل، يحتاج مستخدم Microsoft Entra الخاص بك إلى إذن للكتابة إلى مثيل Azure Container Registry الذي تستخدمه مؤسستك لوحدات Bicep الخاصة به.

عند العمل باستخدام بنية أساسية تلقائية للتوزيع، تنطبق المبادئ نفسها. ومع ذلك، نظراً لأنك لست الشخص الذي يشغِّل التوزيع، تحتاج إلى التأكد من منح كيان الخدمة الخاصة بالبنية الأساسية الوصول المناسب إلى مجموعة الموارد لنشر مواصفات القالب، أو إلى سجل الحاوية لنشر الوحدات.

تلميح

عند نشر وحدة إلى سجل، ربما لا يحتاج كيان الخدمة الذي يشغل التوزيع إلى الكثير من الأذونات. عندما يستخدم السجل الخاص بك تخويل Microsoft Entra، يحتاج كيان الخدمة فقط إلى إذن AcrPush في السجل.

فكَّر في استخدام مبدأ الأمان الأقل امتيازاً. بادر بتزويد كيان الخدمة الخاص بالبنية الأساسية بإمكانية الوصول إلى سجل الحاوية فقط، وليس إلى مجموعة موارد أو اشتراك.

انشر مواصفات ووحدات القالب من البنية الأساسية

عندما تنشر مواصفات قالب من حاسوبك باستخدام Azure CLI، يمكنك استخدام أمر مثل الأمر التالي:

az ts create \
  --name StorageWithoutSAS \
  --resource-group MyResourceGroup \
  --location westus3 \
  --display-name "Storage account with SAS disabled" \
  --description "This template spec creates a storage account, which is preconfigured to disable SAS authentication." \
  --version 1 \
  --template-file main.bicep

يمكنك تحويل أمر Azure CLI هذا إلى خطوة البنية الأساسية:

- task: AzureCLI@2
  name: Publish
  displayName: Publish template spec
  inputs:
    azureSubscription: $(ServiceConnectionName)
    scriptType: 'bash'
    scriptLocation: 'inlineScript'
    inlineScript: |
      az ts create \
        --name StorageWithoutSAS \
        --resource-group MyResourceGroup \
        --location westus3 \
        --display-name "Storage account with SAS disabled" \
        --description "This template spec creates a storage account, which is preconfigured to disable SAS authentication." \
        --version 1 \
        --template-file main.bicep

البنية الأساسية تستخدم العملية نفسها لنشر مواصفات القالب التي ستستخدمها بنفسك.

وبالمثل، عندما تنشر وحدة Bicep من حاسوبك باستخدام Azure CLI، يمكنك استخدام أمر مثل الأمر التالي:

az bicep publish \
   --file module.bicep \
   --target 'br:toycompany.azurecr.io/mymodules/myqueue:2'

يمكنك تحويل أمر Azure CLI هذا إلى خطوة البنية الأساسية أيضاً:

- task: AzureCLI@2
  name: Publish
  displayName: Publish Bicep module
  inputs:
    azureSubscription: $(ServiceConnectionName)
    scriptType: 'bash'
    scriptLocation: 'inlineScript'
    inlineScript: |
      az bicep publish \
        --file module.bicep \
        --target 'br:toycompany.azurecr.io/mymodules/myqueue:2'

تلميح

في هذا المثال، يتم تضمين اسم مضيف سجل Bicep (toycompany.azurecr.io) في تعريف خطوة البنية الأساسية. هذه ليست ممارسة جيدة. يمكنك استخدام متغيرات البيئة لتعيين إعدادات التكوين مثل هذا. سترى كيف يعمل هذا لاحقاً في وحدة Microsoft Learn هذه.

يتم وصف كيفية نشر مواصفات قالب من البنية الأساسية لبرنامج ربط العمليات التجارية في هذه الوحدة.

استخدم وحدة أو مواصفات قالب

في وحدات تدريب Microsoft Learn السابقة، تعلمت كيفية نشر الموارد المعرفة في مواصفات القالب، وكيفية استخدام وحدات Bicep المخزنة في السجلات. سواء كنت تنشر مواصفات قالبك ووحداتك يدوياً أو من البنية الأساسية للتوزيع، فإنك تستخدمها وتوزعها بالطريقة نفسها.

على سبيل المثال، يمكنك توزيع مواصفات قالب أو ملف Bicep إلى مجموعة موارد باستخدام az deployment group create الأمر Azure CLI أو New-AzResourceGroupDeployment cmdlet مع Azure PowerShell.