تحويل الموارد وترحيلها إلى ملف Bicep
اتباع عملية منظمة عند بدء عملية الترحيل إلى Bicep مهمًا لضمان أن ملف Bicep يصف موارد Azure بشكل صحيح. تحتاج إلى التأكد من أن تعليمات Bicep البرمجية تتبع أفضل الممارسات وأنه تم اختبارها بالكامل وآمنة للاستخدام في عمليات النشر اللاحقة. يمكنك في هذه الوحدة التعرف على أول مرحلتين لترحيل Bicep: مرحلة التحويل ومرحلة الترحيل.
التركيز الرئيسي لهذين المرحلتين هو إعداد ملف Bicep جديد قبل إعادة بناء التعليمات البرمجية لاحقا واختباره.
مرحلة التحويل
الهدف من مرحلة التحويل لترحيل مواردك إلى Bicep هو تسجيل تمثيل أولي لموارد Azure. ملف Bicep الذي تقوم بإنشائه في هذه المرحلة غير مكتمل، وهو غير جاهز لاستخدامه. ومع ذلك، يمنحك الملف نقطة بداية الترحيل.
تتكون مرحلة التحويل من خطوتين محتملتين، تكملهما بالتسلسل:
- الحصول على تمثيل لموارد Azure.
- إذا لزم الأمر، قم بتحويل تمثيل JSON إلى Bicep باستخدام
decompile
الأمر .
إذا كان لديك قالب JSON موجود تحوله إلى Bicep، فإن الخطوة الأولى سهلة - حيث يتوفر لديك بالفعل القالب المصدر. ستتعلم كيفية إلغاء التحويل البرمجي إلى Bicep في هذه الوحدة.
إذا كنت تقوم بتحويل موارد Azure التي تم نشرها باستخدام مدخل Microsoft Azure أو أداة أخرى، فأنت بحاجة إلى التقاط تعريفات الموارد. يمكنك تصدير تعريفات الموارد وتحويلها إلى Bicep، أو يمكنك استخدام الأمر Insert Resource في Visual Studio Code لإدراج تمثيل Bicep لمورد Azure.
كيفية تمثيل Azure للموارد
Azure Resource Manager هي الخدمة المستخدمة لنشر الموارد وإدارتها في Azure. يتم تعقب كل الموارد التي وزعت إلى Azure بواسطة Resource Manager بغض النظر عن الأسلوب المستخدم لتوزيع المورد. يمكنك استخدام مدخل Azure، وAzure CLI، وAzure PowerShell، وواجهة برمجة تطبيقات REST لـ Resource Manager، وعدة تطوير البرامج لـ Azure للتفاعل مع Resource Manager.
يوجد نوعان من العمليات في Azure: عمليات وحدة التحكم وعمليات خطة البيانات. تستخدم عمليات وحدة التحكم لإدارة الموارد في اشتراكك. يتم استخدام عمليات مستوى البيانات للوصول إلى الميزات التي يتم كشفها بواسطة مورد. على سبيل المثال، يمكنك استخدام تشغيل وحدة التحكم لإنشاء جهاز ظاهري ولكن يمكنك استخدام تشغيل وحدة التحكم للاتصال بالجهاز الظاهري باستخدام بروتوكول سطح المكتب البعيد (RDP).
تصدير الموارد الموجودة إلى قالب JSON
بغض النظر عن كيفية إنشاء موارد Azure، توفر المعلومات حول كل مورد بتنسيق JSON بواسطة Resource Manager. عندما تطلب نسخة من تمثيل JSON لمورد، فأنت تعمل على تصدير المورد. يمكن إلغاء التحويل البرمجي لملف JSON الذي تقوم بتصديره إلى Bicep.
يوفر Resource Manager عدة طرق لتصدير موارد Azure إلى قالب. يمكنك استخدام مدخل Azure، وAzure CLI، وأوامر cmdlet لـ Azure PowerShell لتصدير موارد فردية وموارد متعددة ومجموعات موارد بالكامل.
تعبر عملية التصدير عن عملية وحدة تحكم، مما يعني أنها تصدر تكوين موارد Azure فقط. على سبيل المثال، عند تصدير جهاز ظاهري، لا يتم تصدير البيانات الموجودة على محرك الأقراص الثابتة للجهاز الظاهري. وعند تصدير حساب تخزين، لا يتم تضمين الكائنات الثنائية كبيرة الحجم والمحتويات الأخرى لحساب التخزين في عملية التصدير.
تحتاج إلى اعتبار بعض الأشياء عند تصدير الموارد الموجودة:
- يُقصد بتعريف المورد المصدر نسخة مطابقة من الحالة الحالية لذلك المورد. ويتضمن كافة التغييرات التي تم إجراؤها على المورد منذ عملية توزيعه الأولي.
- قد يتضمن القالب المصدر بعض خصائص الموارد الافتراضية التي يتم حذفها عادةً من تعريف Bicep. على سبيل المثال، قد تضيف عملية التصدير خصائص للقراءة فقط التي تكونها Azure تلقائيًا. لا أهمية لتضمين هذه الخصائص لأنها للقراءة فقط. ضع في اعتبارك إزالة هذه الخصائص من تعريفات الموارد عندما ترحل إلى Bicep، للحفاظ على ملفات Bicep خالية من التعليمات البرمجية غير الضرورية التي قد تسبب الارتباك.
- ربما لن يتضمن القالب المصدر جميع المعلمات التي ستحتاجها لجعل القالب قابلا لإعادة الاستخدام. عند تصدير قالب، سيتم تضمين العديد من الخصائص بتعليمات برمجية داخل القالب. سترى كيفية إضافة معلمات لاحقا في هذه الوحدة النمطية.
- لا يمكن تصدير بعض الموارد باستخدام هذا النهج حيث تحتاج إلى تعريفها يدوياً في ملف Bicep. ستتعلم كيفية إعادة إنشاء هذه الموارد لاحقاً في هذه الوحدة.
حفظ عمليات التوزيع في قالب JSON
إذا قمت بنشر مورد يدويا من مدخل Microsoft Azure، فربما لاحظت خيار تنزيل قالب للأتمتة في علامة التبويب مراجعة + إنشاء . يحفظ هذا الخيار قالب JSON ARM الذي يستند إلى الأسماء والخصائص التي قمت بتعيينها أثناء إنشاء المورد في المدخل.
كما يقوم مدير الموارد بتعقب عمليات توزيع الموارد. تتضمن عمليات النشر التغييرات التي تم إرسالها بواسطة تجربة إنشاء موارد مدخل Microsoft Azure وأي عمليات نشر لقالب ARM. عادة ما لا تنشئ التغييرات التي تم إجراؤها على الموارد الموجودة باستخدام مدخل Microsoft Azure أو Azure PowerShell cmdlets أو Azure CLI أو أدوات أخرى عمليات نشر.
إذا أُنشِئت عمليات التوزيع باستخدام أداة متوافقة، يمكنك الوصول إلى قالب التوزيع من محفوظات توزيع مجموعة الموارد. يمكنك استخدام مدخل Azure أو Azure CLI أو Azure PowerShell لحفظ عمليات النشر.
يجب اعتبار بعض الأشياء عند حفظ القوالب باستخدام هذا الأسلوب:
- يظهر القالب المحفوظ حالة الموارد في وقت التوزيع. ولا يتضمن أي تغييرات أجريت بعد التوزيع.
- إذا احتوى التوزيع على موارد متعددة، فلا يمكنك تحديد موارد معينة لتضمينها واستبعادها. تقوم هذه العملية بتنزيل تعريف كافة الموارد التي كانت جزءًا من التوزيع الأولي. ومع ذلك عند الانتقال إلى مرحلة الترحيل من العملية، يمكنك تجاهل الموارد التي لا تحتاج إليها يدويًا.
- سيتضمن القالب خصائص الموارد المطلوبة للتوزيع فقط.
- قد يتضمن القالب معلمات يمكنك استخدامها لإعادة توزيع القالب في بيئات متعددة. ومع ذلك، تحتاج إلى تأكيد أن هذه المعلمات تناسب احتياجاتك.
- ربما لا يتضمن القالب خصائص غريبة، ولكن يجب عليك التحقق من أن القالب يتضمن كل ما تتوقعه وإزالة أي خصائص غير الضرورية.
إشعار
ويمكنك مع ذلك تصدير الموارد، إما من تصدير الموارد الموجودة أو حفظ عمليات التوزيع والتعامل معها كنقطة انطلاق وعدم استخدامها مباشرة. بدلا من ذلك، استخدمه كنقطة بداية للقالب النهائي.
إدراج الموارد الموجودة في Bicep
يتضمن ملحق Bicep لـ Visual Studio Code الأمر Insert Resource الذي يسجل تمثيل Bicep لمورد Azure. يقرأ هذا الأمر تعريف JSON للمورد من Azure ويزيل الخصائص المُعرَفة على أنها للقراءة فقط ويُلغي تحويل JSON إلى Bicep. كما هو الحال مع دالة التصدير، يمكن استخدام التعليمات البرمجية ل Bicep الناتجة كنقطة بداية لملف Bicep النهائي.
يمكنك إدراج مورد عن طريق فتح لوحة أوامر Visual Studio Code. استخدم Ctrl+Shift+P في نظامي التشغيل Windows وLinux و⌘+Shift+P في نظام التشغيل macOS.
إلغاء التحويل البرمجي لقالب JSON ARM المصدر
والخطوة الثانية في ترحيل موارد Azure إلى Bicep هي تحويل قوالب JSON ARM وموارد Azure إلى قوالب Bicep. تتضمن أدوات Bicep الأمر decompile
لتحويل القوالب. يمكنك استدعاء decompile
الأمر من Azure CLI أو Bicep CLI.
لا تضمن عملية إلغاء التحويل البرمجي تعيينا كاملا من JSON إلى Bicep. قد تحتاج إلى مراجعة ملف Bicep الذي أنشيء لتلبية أفضل ممارسات القالب قبل استخدام الملف لتوزيع الموارد. اعتبر هذه نقطة البداية للترحيل الخاص بك. لاحقا في هذه الوحدة النمطية، ستتعلم كيفية إصلاح أي مشكلات تواجهها أثناء عملية إلغاء التحويل البرمجي.
بعد إلغاء التحويل البرمجي للقالب الخاص بك تكون قد أكملت مرحلة التحويل. لديك الآن ملف Bicep صالح للبدء منه.
مرحلة الترحيل
الهدف من مرحلة الترحيل لترحيل مواردك إلى Bicep هو إنشاء المسودة الأولى من ملف Bicep القابل للتوزيع والتأكد من أنه يحدد جميع موارد Azure الموجودة في نطاق الترحيل.
تتكون مرحلة الترحيل من ثلاث خطوات، والتي تكملها بالتسلسل التالي:
- إنشاء ملف Bicep فارغ جديد.
- نسخ كل مورد من القالب الذي تم إلغاء تحويله البرمجي.
- تحديد وإعادة إنشاء أي موارد مفقودة.
إنشاء ملف Bicep جديد
من الجيد إنشاء ملف Bicep جديد. الملف الذي قمت بإنشائه في مرحلة التحويل يمثل نقطة مرجعية للانطلاق منها، ولكن لا يجب أن تتعامل معه على أنه نهائي أو توزعه كما هو.
نسخ الموارد إلى ملف Bicep الجديد
انسخ كل مورد على حدة من ملف Bicep المحول إلى ملف Bicep الجديد. تساعدك هذه العملية على حل أي مشكلات على أساس كل مورد وتجنب أي ارتباك مع زيادة حجم القالب.
إعادة إنشاء موارد غير مدعمة
لا يمكن تصدير جميع أنواع موارد Azure عبر مدخل Azure أو Azure CLI أو Azure PowerShell. على سبيل المثال، ملحقات الجهاز الظاهري مثل DependencyAgentWindows
و MMAExtension
(عامل مراقبة Microsoft) هي أنواع موارد لا يمكنك تصديرها.
عند محاولة تصدير مورد باستخدام مدخل Microsoft Azure أو Azure CLI أو Azure PowerShell ويتم تضمين نوع مورد غير مدعوم، يتم إنشاء رسالة خطأ مفصلة. تحتاج إلى إعادة إنشاء أي مورد لم يتم تصديره، مثل ملحقات الجهاز الظاهري، في ملف Bicep الجديد. يمكنك الاختيار من بين العديد من الأدوات والأساليب لإعادة إنشاء الموارد، بما في ذلك Azure Resource Explorer ومرجع قالب ARM وقوالب Azure Quickstart.
Azure Resource Explorer
Azure Resource Explorer هو أداة مضمنة في مدخل Microsoft Azure. لا يعرض المدخل أنواع موارد معينة لكن يمكن أن يوفر Resource Explorer تمثيل JSON للموارد الخاصة بك. للوصول إلى Resource Explorer ابحث عنه في مربع البحث:
يعرض جزء النتائج قائمة بموفري الموارد المسجلين للاشتراك وتفاصيل لكافة الموارد ومجموعات الموارد والاشتراكات التي لديك إذن لعرضها. لعرض تمثيل JSON لمورد، حدد التدرج الهرمي على الجانب الأيمن من الجزء:
يمكنك عن طريق تحديد مورد عرض تمثيل JSON، كما في هذا المثال:
{
"name": "DependencyAgentWindows",
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rg-app-prod-truckline/providers/Microsoft.Compute/virtualMachines/vm-prod-001/extensions/DependencyAgentWindows",
"type": "Microsoft.Compute/virtualMachines/extensions",
"location": "eastus",
"properties": {
"autoUpgradeMinorVersion": true,
"provisioningState": "Succeeded",
"publisher": "Microsoft.Azure.Monitoring.DependencyAgent",
"type": "DependencyAgentWindows",
"typeHandlerVersion": "9.10"
}
}
يمكنك استخدام تمثيل JSON هذا لتحديد مورد Bicep:
resource dependencyAgentWindows 'Microsoft.Compute/virtualMachines/extensions@2022-08-01' = {
parent: virtualMachine
name: 'DependencyAgentWindows'
location: 'eastus'
properties: {
autoUpgradeMinorVersion: true
publisher: 'Microsoft.Azure.Monitoring.DependencyAgent'
type: 'DependencyAgentWindows'
typeHandlerVersion: '9.10'
}
}
إشعار
يتضمن تمثيل JSON خاصية باسم provisioningState
. provisioningState
الخاصية للقراءة فقط، وتعين تلقائيًا بواسطة Azure، لذلك لا تتضمن في تعريف مورد Bicep.
تلميح
يساعدك ملحق Bicep لـ Visual Studio Code في تعريف هذه الموارد. على سبيل المثال، لاحظ أن تمثيل Bicep للمورد يتضمن إصدار واجهة برمجة التطبيقات، لكن إصدار JSON الذي صدر لا يتضمن ذلك. في Visual Studio Code، عندما تبدأ بإدخال نوع المورد، يقترح إصدار API تلقائيا.
مرجع القالب ARM
تعد الوثائق المرجعية لقالب ARM مصدراً للمعلومات الخاصة ببنية قالب ARM، وأنواع الموارد، وإصدارات واجهة برمجة التطبيقات، وتعريفات خصائص موارد Azure. توفر الوثائق أمثلة بتنسيقي Bicep وJSON.
يمكنك اختيار موفري موارد وأنواع موارد معينة مثل Microsoft.Web/serverfarms
وإصدارات واجهة برمجة تطبيقاتها. يمكنك مراجعة خصائص الموارد المطلوبة والاختيارية. يمكنك أيضا عرض أوصاف الخصائص التي تساعدك على فهم ما تفعله الخصائص.
قوالب Azure Quickstart
مستودع Azure Quickstart Templates يمثل مجموعة من القوالب التي يساهم بها المجتمع. يوفر هذا المستودع من القوالب القابلة للبحث أمثلة على العديد من موارد وحلول Azure. في بعض عمليات التشغيل السريع، يتوفر كل من نموذج JSON ARM وقالب Bicep ARM للعرض. يمكنك استخدام هذه القوالب كنقطة مرجعية لمساعدتك في إنشاء القوالب والتحقق منها للتوزيع.
افترض أنك تريد العثور على قالب ينشئ خطة وتطبيق Azure App Service. ستلاحظ، في المستودع أن كل قالب تشغيل سريع يمنحك خيار توزيع القالب مباشرة إلى Azure، أو استعراض القالب على GitHub.
ضع في اعتبارك أن قوالب Azure Quickstart هي مساهمات المجتمع. قد تكون بعض الأمثلة قديمة لأنه تتم إضافة الميزات بانتظام إلى خدمات Azure. قد تتضمن الأمثلة أيضا الموارد والخصائص التي لا تحتاجها باستخدامك للقالب. وبالرغم من ذلك فإن مستودع قوالب التشغيل السريع هو مورد مفيد لمساعدتك على فهم كيفية نشر الموارد باستخدام قوالب ARM.