التكامل المستمر والنشر المستمر إلى أجهزة Azure IoT Edge

ينطبق على:علامة اختيار IoT Edge 1.5 IoT Edge 1.5 علامة اختيار IoT Edge 1.4 IoT Edge 1.4

هام

IoT Edge 1.5 LTS وIoT Edge 1.4 LTS هي إصدارات مدعومة. IoT Edge 1.4 LTS هو نهاية العمر الافتراضي في 12 نوفمبر 2024. إذا كنت تستخدم إصدارا سابقا، فشاهد تحديث IoT Edge.

يمكنك بسهولة اعتماد DevOps مع تطبيقات Azure IoT Edge مع مهام Azure IoT Edge المضمنة في Azure Pipelines. توضح هذه المقالة كيفية استخدام Azure Pipelines لإنشاء واختبار ونشر وحدات Azure IoT Edge باستخدام YAML. بدلا من ذلك، يمكنك استخدام المحرر الكلاسيكي.

رسم تخطيطي للتكامل المستمر وفروع التطوير المستمر للتطوير والإنتاج.

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

الإجراء ‏‏الوصف
إنشاء صور الوحدة النمطية يأخذ رمز حل IoT Edge الخاص بك وينشئ صور الحاوية.
دفع صور الوحدة النمطية يدفع صور الوحدة النمطية إلى سجل الحاوية الذي حددته.
إنشاء بيان التوزيع يأخذ ملف deployment.template.json والمتغيرات، ثم ينشئ ملف بيان نشر IoT Edge النهائي.
النشر على أجهزة IoT Edge إنشاء عمليات نشر IoT Edge إلى جهاز واحد أو أكثر من أجهزة IoT Edge.

ما لم يتم تحديد خلاف ذلك، لا تستكشف الإجراءات الواردة في هذه المقالة جميع الوظائف المتوفرة من خلال معلمات المهمة. لمزيد من المعلومات، راجع الموارد التالية:

المتطلبات الأساسية

  • مستودع Azure Repos. إذا لم يكن لديك واحد، يمكنك إنشاء مستودع Git جديد في مشروعك. بالنسبة لهذه المقالة، أنشأنا مستودعا يسمى IoTEdgeRepo.

  • تم الالتزام بحل IoT Edge ودفعه إلى المستودع الخاص بك. إذا كنت ترغب في إنشاء نموذج حل جديد لاختبار هذه المقالة، فاتبع الخطوات الواردة في تطوير وحدات Azure IoT Edge النمطية باستخدام Visual Studio Code. بالنسبة لهذه المقالة، أنشأنا حلا في مستودعنا يسمى IoTEdgeSolution، والذي يحتوي على التعليمات البرمجية لوحدة نمطية تسمى filtermodule.

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

    تعرف على المسار إلى ملف deployment.template.json في الحل الخاص بك، والذي يتم استخدامه في عدة خطوات. إذا لم تكن على دراية بدور قالب النشر، فشاهد التعرف على كيفية نشر الوحدات النمطية وإنشاء المسارات.

    تلميح

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

  • سجل حاوية حيث يمكنك دفع صور الوحدة النمطية. يمكنك استخدام Azure Container Registry أو سجل جهة خارجية.

  • مركز Azure IoT نشط مع جهازين IoT Edge على الأقل لاختبار مراحل توزيع الاختبار والإنتاج المنفصلة. يمكنك متابعة مقالات التشغيل السريع لإنشاء جهاز IoT Edge على Linux أو Windows

لمزيد من المعلومات حول استخدام Azure Repos، راجع مشاركة التعليمات البرمجية الخاصة بك مع Visual Studio وAzure Repos.

إنشاء مسار بناء للتكامل المستمر

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

  1. سجل الدخول إلى مؤسسة Azure DevOps (https://dev.azure.com/{your organization}) وافتح المشروع الذي يحتوي على مستودع حلول IoT Edge.

    لقطة شاشة توضح كيفية فتح مشروع DevOps.

  2. من قائمة الجزء الأيمن في مشروعك، حدد Pipelines. حدد Create Pipeline في وسط الصفحة. أو، إذا كان لديك مسارات بناء بالفعل، فحدد الزر New pipeline في أعلى اليمين.

    لقطة شاشة توضح كيفية إنشاء مسار بناء جديد باستخدام الزر New pipeline .

  3. في الصفحة أين هي التعليمات البرمجية الخاصة بك؟ ، حدد Azure Repos Git YAML. إذا كنت ترغب في استخدام المحرر الكلاسيكي لإنشاء مسارات بناء مشروعك، فشاهد دليل المحرر الكلاسيكي.

  4. حدد المستودع الذي تقوم بإنشاء مسار له.

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

  5. في صفحة Configure your pipeline ، حدد Starter pipeline. إذا كان لديك ملف YAML ل Azure Pipelines موجود مسبقا ترغب في استخدامه لإنشاء هذا المسار، يمكنك تحديد ملف YAML لخطوط أنابيب Azure الموجودة وتوفير الفرع والمسار في المستودع إلى الملف.

    حدد Starter pipeline أو ملف YAML لخطوط أنابيب Azure الحالية لبدء البنية الأساسية لبرنامج ربط العمليات التجارية للبناء

  6. في صفحة Review your pipeline YAML ، يمكنك تحديد الاسم azure-pipelines.yml الافتراضي لإعادة تسمية ملف تكوين البنية الأساسية لبرنامج ربط العمليات التجارية.

    حدد إظهار المساعد لفتح لوحة المهام .

    لقطة شاشة توضح كيفية تحديد إظهار المساعد لفتح لوحة المهام.

  7. لإضافة مهمة، ضع المؤشر في نهاية YAML أو في أي مكان تريد إضافة الإرشادات لمهمتك. ابحث عن Azure IoT Edge وحدده. املأ معلمات المهمة كما يلي. ثم حدد Add.

    المعلمة ‏‏الوصف‬
    الإجراء حدد Build module images.
    ملف .template.json قم بتوفير المسار إلى ملف deployment.template.json في المستودع الذي يحتوي على حل IoT Edge.
    النظام الأساسي الافتراضي حدد نظام التشغيل المناسب للوحدات النمطية الخاصة بك استنادا إلى جهاز IoT Edge المستهدف.

    لمزيد من المعلومات حول هذه المهمة ومعلماتها، راجع مهمة Azure IoT Edge.

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

    تلميح

    بعد إضافة كل مهمة، سيقوم المحرر تلقائيا بتمييز الأسطر المضافة. لمنع الكتابة فوق العرضي، قم بإلغاء تحديد الأسطر وتوفير مساحة جديدة لمهمتك التالية قبل إضافة مهام إضافية.

  8. كرر هذه العملية لإضافة ثلاث مهام أخرى باستخدام المعلمات التالية:

    • المهمة: Azure IoT Edge

      المعلمة ‏‏الوصف‬
      الإجراء حدد دفع صور الوحدة النمطية.
      نوع سجل الحاوية استخدم النوع الافتراضي: Azure Container Registry.
      اشتراك Azure حدد Subscription الخاص بك.
      Azure Container Registry اختر السجل الذي تريد استخدامه للبنية الأساسية لبرنامج ربط العمليات التجارية.
      ملف .template.json قم بتوفير المسار إلى ملف deployment.template.json في المستودع الذي يحتوي على حل IoT Edge.
      النظام الأساسي الافتراضي حدد نظام التشغيل المناسب للوحدات النمطية الخاصة بك استنادا إلى جهاز IoT Edge المستهدف.

      لمزيد من المعلومات حول هذه المهمة ومعلماتها، راجع مهمة Azure IoT Edge.

    • المهمة: نسخ الملفات

      المعلمة ‏‏الوصف‬
      المجلد المصدر المجلد المصدر المراد النسخ منه. فارغ هو جذر المستودع. استخدم المتغيرات إذا لم تكن الملفات في المستودع. مثال:$(agent.builddirectory).
      المحتويات أضف سطرين: deployment.template.json و **/module.json.
      المجلد الهدف حدد المتغير $(Build.ArtifactStagingDirectory). راجع إنشاء متغيرات للتعرف على الوصف.

      لمزيد من المعلومات حول هذه المهمة ومعلماتها، راجع مهمة نسخ الملفات.

    • المهمة: نشر البيانات الاصطناعية للبناء

      المعلمة ‏‏الوصف‬
      مسار النشر حدد المتغير $(Build.ArtifactStagingDirectory). راجع إنشاء متغيرات للتعرف على الوصف.
      اسم البيانات الاصطناعية حدد الاسم الافتراضي: drop
      موقع نشر البيانات الاصطناعية استخدم الموقع الافتراضي: Azure Pipelines

      لمزيد من المعلومات حول هذه المهمة ومعلماتها، راجع مهمة نشر البيانات الاصطناعية للبناء.

  9. حدد Save من القائمة المنسدلة Save and run في أعلى اليمين.

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

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

تابع إلى القسم التالي لإنشاء مسار الإصدار.

إنشاء مسار إصدار للتوزيع المستمر

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

إنشاء مسار جديد، وإضافة مرحلة جديدة:

  1. في علامة التبويب Releases ضمن Pipelines، اختر + New pipeline. أو، إذا كان لديك مسارات إصدار بالفعل، فاختر الزر + New وحدد + New release pipeline.

    إضافة مسار إصدار باستخدام الزر + New pipeline

  2. عند مطالبتك بتحديد قالب، اختر البدء بوظيفة فارغة.

    ابدأ بمهمة فارغة لمسار الإصدار الخاص بك

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

    يمكنك أيضا إعادة تسمية مسار الإصدار الخاص بك عن طريق تحديد نص "مسار الإصدار الجديد" في الأعلى.

  4. ربط الإصدار بالأدوات الخاصة بالبناء التي يتم نشرها بواسطة البنية الأساسية لبرنامج ربط العمليات التجارية للبناء. حدد إضافة في منطقة البيانات الاصطناعية.

    انقر فوق إضافة في منطقة البيانات الاصطناعية للواجهة

  5. في صفحة Add an artifact، حدد Build كنوع المصدر. اختر المشروع وبنية البنية الأساسية لبرنامج ربط العمليات التجارية التي أنشأتها. إذا كنت ترغب في ذلك، يمكنك تغيير الاسم المستعار المصدر إلى شيء وصفي أكثر. ثم حدد Add.

    في صفحة إضافة بيانات اصطناعية، حدد إضافة لإنشاء البيانات الاصطناعية

  6. افتح مشغلات البيانات الاصطناعية وحدد التبديل لتمكين مشغل التوزيع المستمر. الآن، يتم إنشاء إصدار جديد في كل مرة يتوفر فيها إصدار جديد.

    افتح مشغلات البيانات الاصطناعية وقم بالتبديل لتمكين مشغل التوزيع المستمر

  7. تم تكوين مرحلة التطوير مسبقا بمهمة واحدة ومهام صفرية. من قائمة البنية الأساسية لبرنامج ربط العمليات التجارية، حدد المهام ثم اختر مرحلة التطوير. حدد مهمة العامل وغير اسم العرض الخاص بها إلى سؤالجواب. يمكنك تكوين تفاصيل حول مهمة العامل، ولكن مهمة التوزيع غير حساسة للنظام الأساسي حتى تتمكن من استخدام أي مواصفات عامل في تجمع العامل المختار.

    عرض المهام لمرحلة التطوير ضمن علامة التبويب المهام

  8. في مهمة سؤالجواب، حدد علامة الجمع (+) لإضافة مهمتين. ابحث عن Azure IoT Edge وأضفه مرتين.

  9. حدد أول مهمة Azure IoT Edge وقم بتكوينها بالقيم التالية:

    المعلمة ‏‏الوصف‬
    ‏‫اسم العرض‬ يتم تحديث اسم العرض تلقائيا عند تغيير حقل الإجراء.
    الإجراء حدد Generate deployment manifest.
    ملف .template.json حدد المسار: $(System.DefaultWorkingDirectory)/Drop/drop/deployment.template.json. يتم نشر المسار من البنية الأساسية لبرنامج ربط العمليات التجارية للبناء.
    النظام الأساسي الافتراضي حدد نظام التشغيل المناسب للوحدات النمطية الخاصة بك استنادا إلى جهاز IoT Edge المستهدف.
    مسار الإخراج ضع المسار $(System.DefaultWorkingDirectory)/Drop/drop/configs/deployment.json. هذا المسار هو ملف بيان نشر IoT Edge النهائي.

    تساعد هذه التكوينات في استبدال عناوين URL لصورة الوحدة النمطية في deployment.template.json الملف. يساعد إنشاء بيان التوزيع أيضا على استبدال المتغيرات بالقيمة الدقيقة التي حددتها في deployment.template.json الملف. في Visual Studio/Visual Studio Code، تقوم بتحديد القيمة الفعلية في .env ملف. في Azure Pipelines، يمكنك تعيين القيمة في علامة التبويب Release Pipeline Variables . انتقل إلى علامة التبويب Variables وقم بتكوين الاسم والقيمة كما يلي:

    • ACR_ADDRESS: قيمة خادم تسجيل الدخول إلى Azure Container Registry. يمكنك استرداد خادم تسجيل الدخول من صفحة النظرة العامة الخاصة بسجل الحاوية في مدخل Azure.
    • ACR_PASSWORD: كلمة مرور Azure Container Registry.
    • ACR_USER: اسم مستخدم Azure Container Registry.

    إذا كان لديك متغيرات أخرى في مشروعك، يمكنك تحديد الاسم والقيمة في علامة التبويب هذه. يمكن أن يتعرف بيان إنشاء التوزيع فقط على المتغيرات الموجودة في ${VARIABLE} النكهة. تأكد من استخدام هذه النكهة في ملفاتك *.template.json .

    "registryCredentials": {
      "<ACR name>": { // Your Azure Container Registry **Registry name** value
        "username": "${ACR_USER}",
        "password": "${ACR_PASSWORD}",
        "address": "${ACR_ADDRESS}"
      }
    }
    

    تكوين المتغيرات لمسار الإصدار الخاص بك في علامة التبويب المتغيرات

  10. حدد مهمة Azure IoT Edge الثانية وقم بتكوينها بالقيم التالية:

    المعلمة ‏‏الوصف‬
    ‏‫اسم العرض‬ يتم تحديث اسم العرض تلقائيا عند تغيير حقل الإجراء.
    الإجراء حدد Deploy to IoT Edge devices.
    ملف التوزيع ضع المسار $(System.DefaultWorkingDirectory)/Drop/drop/configs/deployment.json. هذا المسار هو ملف ملف بيان نشر IoT Edge.
    اشتراك Azure حدد الاشتراك الذي يحتوي على IoT Hub الخاص بك.
    IoT Hub name حدد مركز IoT.
    اختيار جهاز واحد/متعدد اختر ما إذا كنت تريد نشر البنية الأساسية لبرنامج ربط العمليات التجارية للإصدار على جهاز واحد أو عدة أجهزة. إذا قمت بالنشر على جهاز واحد، أدخل معرف جهاز IoT Edge. إذا كنت تقوم بالنشر على أجهزة متعددة، فحدد حالة هدف الجهاز. الشرط الهدف هو عامل تصفية لمطابقة مجموعة من أجهزة IoT Edge في IoT Hub. إذا كنت ترغب في استخدام علامات الجهاز كشرط، فأنت بحاجة إلى تحديث علامات الأجهزة المقابلة باستخدام جهاز IoT Hub المزدوج. تحديث معرف نشر IoT Edge وأولوية نشر IoT Edge في الإعدادات المتقدمة. لمزيد من المعلومات حول إنشاء نشر لأجهزة متعددة، راجع فهم عمليات التوزيع التلقائية ل IoT Edge.
    معرف الجهاز أو شرط الهدف اعتمادا على التحديد السابق، حدد معرف الجهاز أو شرط الهدف للنشر على أجهزة متعددة.
    خيارات متقدمة بالنسبة لمعرف نشر IoT Edge، حدد $(System.TeamProject)-$(Release.EnvironmentName). يعين هذا المتغير اسم المشروع والإصدار مع معرف نشر IoT Edge.

    إذا كانت مهمتك تتضمن استخدام صورة موجودة في Docker Trusted Registry خاص غير مرئي للسحابة العامة، يمكنك تعيين متغير البيئة SKIP_MODULE_IMAGE_VALIDATION لتخطي true التحقق من صحة الصورة.

    إضافة مهام Azure IoT Edge لمرحلة التطوير الخاصة بك

  11. حدد حفظ لحفظ التغييرات التي أجريتها على مسار الإصدار الجديد. ارجع إلى طريقة عرض المسار عن طريق تحديد علامة التبويب Pipeline من القائمة.

تحقق من IoT Edge CI/CD باستخدام البنية الأساسية لبرنامج ربط العمليات التجارية للإنشاء والإصدار

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

  1. من قائمة الجزء الأيمن، حدد Pipelines وافتح البنية الأساسية لبرنامج ربط العمليات التجارية التي قمت بإنشائها في بداية هذه المقالة.

  2. يمكنك تشغيل مهمة بناء في البنية الأساسية لبرنامج ربط العمليات التجارية الخاصة بك عن طريق تحديد الزر Run pipeline في أعلى اليمين.

    تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية يدويا باستخدام زر تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية

  3. راجع إعدادات تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية. ثم حدد Run.

    حدد خيارات مسار التشغيل وحدد تشغيل

  4. حدد Agent job 1 لمشاهدة تقدم التشغيل. يمكنك مراجعة سجلات إخراج الوظيفة عن طريق تحديد الوظيفة.

    مراجعة إخراج سجل الوظيفة

  5. إذا تم إكمال البنية الأساسية لبرنامج ربط العمليات التجارية للبناء بنجاح، فإنه يؤدي إلى إصدار إلى مرحلة التطوير . ينشئ إصدار التطوير الناجح نشر IoT Edge لاستهداف أجهزة IoT Edge.

    الإصدار إلى التطوير

  6. حدد مرحلة التطوير لمشاهدة سجلات الإصدار.

    سجلات الإصدار

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

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