التكامل المستمر والتوزيع المستمر لأجهزة Azure IoT Edge (محرر كلاسيكي)
ينطبق على:
IoT Edge 1.1 IoT Edge 1.2 ![]()
تتضمن Azure Pipelines مهمة Azure IoT Edge مضمنة تساعدك على اعتماد DevOps مع تطبيقات Azure IoT Edge الخاصة بك. توضح هذه المقالة كيفية استخدام ميزات التكامل المستمر والنشر المستمر ل Azure Pipelines لإنشاء التطبيقات واختبارها ونشرها بسرعة وكفاءة على Azure IoT Edge باستخدام المحرر الكلاسيكي. بدلا من ذلك، يمكنك استخدام YAML.

في هذه المقالة، ستتعرف على كيفية استخدام مهام Azure IoT Edge المضمنة لخطوط أنابيب Azure لإنشاء خطوط أنابيب إنشاء وإصدار لحل IoT Edge الخاص بك. تنفذ كل مهمة من مهام Azure IoT Edge المضافة إلى خط الأنابيب أحد الإجراءات الأربعة التالية:
| إجراء | الوصف |
|---|---|
| إنشاء صور الوحدة النمطية | يأخذ رمز حل IoT Edge الخاص بك ويبني صور الحاويات. |
| صور وحدة الدفع | يدفع صور الوحدة النمطية إلى سجل الحاوية الذي حددته. |
| إنشاء بيان النشر | يأخذ ملف deployment.template.json والمتغيرات، ثم يقوم بإنشاء ملف بيان نشر IoT Edge النهائي. |
| النشر على أجهزة IoT Edge | ينشئ عمليات نشر IoT Edge على واحد أو أكثر من أجهزة IoT Edge. |
ما لم ينص على خلاف ذلك، لا تستكشف الإجراءات الواردة في هذه المقالة كافة الوظائف المتوفرة من خلال معلمات المهمة. لمزيد من المعلومات، راجع الموارد التالية:
- إصدار المهمة
- متقدم - إذا كان ذلك ممكنا ، حدد الوحدات النمطية التي لا تريد إنشاؤها.
- خيارات التحكم
- متغيرات البيئة
- متغيرات المخرجات
المتطلبات الأساسية
An Azure Repos repository. إذا لم يكن لديك واحد ، فيمكنك إنشاء ريبو Git جديد في مشروعك. بالنسبة لهذه المقالة، أنشأنا مستودعا يسمى IoTEdgeRepo.
تم الالتزام بحل IoT Edge ودفعه إلى مستودعك. إذا كنت ترغب في إنشاء حل نموذجي جديد لاختبار هذه المقالة، اتبع الخطوات الواردة في تطوير الوحدات النمطية وتصحيحها في التعليمات البرمجية Visual Studio أو تطوير وتصحيح أخطاء الوحدات النمطية C # في Visual Studio. بالنسبة لهذه المقالة، أنشأنا حلا في مستودعنا يسمى IoTEdgeSolution، والذي يحتوي على التعليمات البرمجية لوحدة نمطية تسمى filtermodule.
بالنسبة لهذه المقالة، كل ما تحتاجه هو مجلد الحل الذي تم إنشاؤه بواسطة قوالب IoT Edge إما في التعليمات البرمجية Visual Studio أو Visual Studio. لست بحاجة إلى إنشاء هذه التعليمة البرمجية أو دفعها أو نشرها أو تصحيحها قبل المتابعة. ستقوم بإعداد هذه العمليات في خطوط أنابيب Azure.
تعرف على المسار إلى ملف deployment.template.json في الحل الخاص بك، والذي يتم استخدامه في عدة خطوات. إذا لم تكن معتادا على دور قالب النشر، فراجع تعرف على كيفية نشر الوحدات النمطية وإنشاء المسارات.
تلميح
إذا كنت تقوم بإنشاء حل جديد، فقم باستنساخ مستودعك محليا أولا. بعد ذلك ، عند إنشاء الحل ، يمكنك اختيار إنشائه مباشرة في مجلد المستودع. يمكنك بسهولة الالتزام ودفع الملفات الجديدة من هناك.
سجل حاوية حيث يمكنك دفع صور الوحدة. يمكنك استخدام سجل حاوية Azure أو سجل جهة خارجية.
مركز Azure IoT نشط مع جهازين على الأقل من أجهزة IoT Edge لاختبار مرحلتي الاختبار ونشر الإنتاج المنفصلتين. يمكنك متابعة مقالات البدء السريع لإنشاء جهاز IoT Edge على Linux أو Windows
إنشاء خط أنابيب بناء للتكامل المستمر
في هذا القسم، يمكنك إنشاء خط أنابيب إنشاء جديد. يمكنك تكوين خط الأنابيب ليعمل تلقائيا ونشر سجلات الإنشاء كلما قمت بإيداع التغييرات على حل IoT Edge.
سجل الدخول إلى مؤسسة Azure DevOps (
https://dev.azure.com/{your organization}) وافتح المشروع الذي يحتوي على مستودع حلول IoT Edge.
من قائمة الجزء الأيمن في مشروعك، حدد خطوط الأنابيب. حدد إنشاء خط أنابيب في وسط الصفحة. أو، إذا كان لديك بالفعل إنشاء خطوط أنابيب، فحدد الزر خط أنابيب جديد في أعلى اليسار.

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

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

حدد مهمة فارغة بدلا من قالب.

بمجرد إنشاء خط الأنابيب الخاص بك ، يتم نقلك إلى محرر خط الأنابيب. هنا، يمكنك تغيير اسم خط الأنابيب وتجمع الوكلاء ومواصفات الوكيل.
يمكنك تحديد تجمع مستضاف من Microsoft، أو تجمع مستضاف ذاتيا تقوم بإدارته.
في وصف خط الأنابيب الخاص بك ، اختر مواصفات الوكيل الصحيحة استنادا إلى النظام الأساسي المستهدف:
إذا كنت ترغب في إنشاء الوحدات النمطية الخاصة بك في النظام الأساسي amd64 لحاويات Linux ، فاختر ubuntu-18.04
إذا كنت ترغب في إنشاء وحداتك النمطية في النظام الأساسي amd64 Windows حاويات 1809 ، فأنت بحاجة إلى إعداد وكيل مستضاف ذاتيا على Windows.
إذا كنت ترغب في إنشاء وحداتك النمطية في النظام الأساسي arm32v7 أو arm64 لحاويات Linux ، فأنت بحاجة إلى إعداد وكيل مستضاف ذاتيا على Linux.
يأتي خط الأنابيب الخاص بك مهيأ مسبقا مع وظيفة تسمى مهمة الوكيل 1. حدد علامة الجمع (+) لإضافة أربع مهام إلى المهمة: Azure IoT Edge مرتين، ونسخ الملفات مرة واحدة، ونشر إنشاء القطع الأثرية مرة واحدة. ابحث عن كل مهمة ومرر مؤشر الماوس فوق اسم المهمة لرؤية الزر إضافة .
عند إضافة جميع المهام الأربع، تبدو مهمة الوكيل مثل المثال التالي:
حدد مهمة Azure IoT Edge الأولى لتحريرها. تقوم هذه المهمة بإنشاء جميع الوحدات النمطية في الحل باستخدام النظام الأساسي المستهدف الذي تحدده. قم بتحرير المهمة باستخدام القيم التالية:
المعلمة الوصف الاسم المعروض يتم تحديث اسم العرض تلقائيا عند تغيير حقل الإجراء. إجراء حدد إنشاء صور الوحدة النمطية. ملف .template.json حدد علامة الحذف (...) وانتقل إلى ملف deployment.template.json في المستودع الذي يحتوي على حل IoT Edge. النظام الأساسي الافتراضي حدد نظام التشغيل المناسب لوحداتك استنادا إلى جهاز IoT Edge المستهدف. متغيرات المخرجات قم بتوفير اسم مرجع لإقرانه بمسار الملف حيث يتم إنشاء ملف deployment.json، مثل الحافة. لمزيد من المعلومات حول هذه المهمة ومعلماتها، راجع مهمة Azure IoT Edge.
تستخدم هذه التكوينات مستودع الصور والعلامة التي تم تعريفها في
module.jsonالملف لتسمية صورة الوحدة النمطية ووضع علامة عليها. يساعد إنشاء صور الوحدة النمطية أيضا على استبدال المتغيرات بالقيمة الدقيقة التي تحددها فيmodule.jsonالملف. في Visual Studio أو Visual Studio Code، يمكنك تحديد القيمة الفعلية في.envملف. في خطوط أنابيب Azure، يمكنك تعيين القيمة في علامة التبويب متغيرات خط الأنابيب . حدد علامة التبويب المتغيرات في قائمة محرر خط الأنابيب وقم بتكوين الاسم والقيمة كما يلي:- ACR_ADDRESS: قيمة خادم تسجيل الدخول إلى حاوية Azure الخاصة بك. يمكنك العثور على قيمة خادم تسجيل الدخول في صفحة نظرة عامة على سجل الحاوية في مدخل Azure.
إذا كان لديك متغيرات أخرى في مشروعك، فيمكنك تحديد الاسم والقيمة في
${VARIABLE}علامة التبويب هذه. تأكد من استخدام هذا التنسيق في ملفاتك**/module.json.حدد مهمة Azure IoT Edge الثانية لتحريرها. تدفع هذه المهمة كافة صور الوحدة النمطية إلى سجل الحاوية الذي تحدده.
المعلمة الوصف الاسم المعروض يتم تحديث اسم العرض تلقائيا عند تغيير حقل الإجراء. إجراء حدد دفع صور الوحدة. نوع سجل الحاوية استخدم النوع الافتراضي: Azure Container Registry.اشتراك Azure اختر اشتراكك. Azure Container Registry حدد نوع سجل الحاوية الذي تستخدمه لتخزين صور الوحدة النمطية الخاصة بك. استنادا إلى نوع التسجيل الذي تختاره، يتغير النموذج. إذا اخترت سجل حاويات Azure، فاستخدم القوائم المنسدلة لتحديد اشتراك Azure واسم سجل الحاويات. إذا اخترت "سجل حاوية عام"، فحدد جديد لإنشاء اتصال خدمة تسجيل. ملف .template.json حدد علامة الحذف (...) وانتقل إلى ملف deployment.template.json في المستودع الذي يحتوي على حل IoT Edge. النظام الأساسي الافتراضي حدد نظام التشغيل المناسب لوحداتك استنادا إلى جهاز IoT Edge المستهدف. إضافة بيانات اعتماد التسجيل إلى بيان النشر حدد true لإضافة بيانات اعتماد التسجيل لدفع صور عامل الرصيف إلى بيان النشر. لمزيد من المعلومات حول هذه المهمة ومعلماتها، راجع مهمة Azure IoT Edge.
إذا كان لديك سجلات حاويات متعددة لاستضافة صور الوحدة النمطية الخاصة بك، فأنت بحاجة إلى تكرار هذه المهمة، وتحديد سجل حاوية مختلف، واستخدام تجاوز الوحدة (الوحدات) النمطية في الإعدادات المتقدمة لتجاوز الصور غير المخصصة لهذا السجل المحدد.
حدد مهمة نسخ الملفات لتحريرها. استخدم هذه المهمة لنسخ الملفات إلى دليل التدريج الأثري.
المعلمة الوصف الاسم المعروض استخدام الاسم الافتراضي أو تخصيصه المجلد المصدر المجلد الذي يحتوي على الملفات المراد نسخها. المحتويات أضف سطرين: deployment.template.jsonو**/module.json. يعمل هذان الملفان كمدخلات لإنشاء بيان نشر IoT Edge.المجلد الهدف حدد المتغير $(Build.ArtifactStagingDirectory). راجع إنشاء متغيرات للتعرف على الوصف.لمزيد من المعلومات حول هذه المهمة ومعلماتها، راجع مهمة نسخ الملفات.
حدد مهمة نشر إنشاء القطع الأثرية لتحريرها. قم بتوفير مسار دليل التدريج للمهام بحيث يمكن نشر المسار لإصدار خط الأنابيب.
المعلمة الوصف الاسم المعروض استخدم الاسم الافتراضي أو قم بتخصيصه. مسار النشر حدد المتغير $(Build.ArtifactStagingDirectory). راجع إنشاء المتغيرات لمعرفة المزيد.اسم البيانات الاصطناعية استخدم الاسم الافتراضي: إسقاط موقع نشر القطع الأثرية استخدام الموقع الافتراضي: خطوط أنابيب Azure لمزيد من المعلومات حول هذه المهمة ومعلماتها، راجع نشر مهمة إنشاء القطع الفنية.
افتح علامة التبويب المشغلات وحدد المربع لتمكين التكامل المستمر. تأكد من تضمين الفرع الذي يحتوي على الرمز الخاص بك.

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

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

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

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

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

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

في مهمة ضمان الجودة، حدد علامة الجمع (+) لإضافة مهمتين. ابحث عن Azure IoT Edge وأضفه مرتين.
حدد مهمة 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الملف. في VS/VS Code، تقوم بتحديد القيمة الفعلية في.envملف. في خطوط أنابيب Azure، يمكنك تعيين القيمة في علامة التبويب متغيرات خط أنابيب الإصدار . انتقل إلى علامة التبويب المتغيرات وقم بتكوين الاسم والقيمة كما يلي:- ACR_ADDRESS: قيمة خادم تسجيل الدخول إلى حاوية Azure الخاصة بك. يمكنك استرداد ملقم تسجيل الدخول من صفحة نظرة عامة من تسجيل الحاوية في مدخل Azure.
- ACR_PASSWORD: كلمة مرور تسجيل حاوية Azure الخاصة بك.
- ACR_USER: اسم مستخدم سجل حاوية Azure الخاص بك.
إذا كان لديك متغيرات أخرى في مشروعك، فيمكنك تحديد الاسم والقيمة في علامة التبويب هذه. يمكن لبيان نشر الإنشاء التعرف فقط على المتغيرات الموجودة في
${VARIABLE}النكهة. تأكد من أنك تستخدم هذه النكهة في ملفاتك*.template.json."registryCredentials": { "<ACR name>": { // Your Azure Container Registry **Registry name** value "username": "${ACR_USER}", "password": "${ACR_PASSWORD}", "address": "${ACR_ADDRESS}" } }
حدد مهمة Azure IoT Edge الثانية وقم بتكوينها بالقيم التالية:
المعلمة الوصف الاسم المعروض يتم تحديث اسم العرض تلقائيا عند تغيير حقل الإجراء. إجراء حدد Deploy to IoT Edge devices.ملف النشر ضع المسار $(System.DefaultWorkingDirectory)/Drop/drop/configs/deployment.json. هذا المسار هو ملف بيان نشر IoT Edge.اشتراك Azure حدد الاشتراك الذي يحتوي على مركز إنترنت الأشياء الخاص بك. 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 موثوق به خاص غير مرئي للسحابة العامة، فيمكنك تعيين متغير بيئة SKIP_MODULE_IMAGE_VALIDATION لتخطي
trueالتحقق من صحة الصورة.
حدد حفظ لحفظ التغييرات التي أجريتها على خط أنابيب الإصدار الجديد. ارجع إلى طريقة عرض خط الأنابيب عن طريق تحديد علامة التبويب خط الأنابيب من القائمة.
ملاحظة
عمليات النشر ذات الطبقات غير مدعومة بعد في مهام Azure IoT Edge في Azure DevOps.
ومع ذلك، يمكنك استخدام مهمة Azure CLI في Azure DevOps لإنشاء النشر الخاص بك كنشر متعدد الطبقات. بالنسبة لقيمة البرنامج النصي المضمن ، يمكنك استخدام الأمر إنشاء نشر حافة az iot:
az iot edge deployment create -d {deployment_name} -n {hub_name} --content modules_content.json --layered true
تحقق من IoT Edge CI/CD باستخدام خطوط أنابيب الإنشاء والإصدار
لتشغيل مهمة إنشاء، يمكنك إما دفع الالتزام بمستودع التعليمات البرمجية المصدر أو تشغيله يدويا. في هذا القسم، يمكنك تشغيل خط أنابيب CI/CD يدويا لاختبار أنه يعمل. ثم تحقق من نجاح النشر.
من قائمة الجزء الأيمن، حدد خطوط الأنابيب وافتح خط أنابيب الإنشاء الذي قمت بإنشائه في بداية هذه المقالة.
يمكنك تشغيل مهمة إنشاء في خط أنابيب الإنشاء الخاص بك عن طريق تحديد الزر تشغيل خط الأنابيب في أعلى اليسار.

راجع تشغيل إعدادات خط الأنابيب . ثم حدد تشغيل.

حدد مهمة الوكيل 1 لمشاهدة تقدم التشغيل. يمكنك مراجعة سجلات مخرجات المهمة عن طريق تحديد المهمة.

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

انقر على مرحلة التطوير للاطلاع على سجلات الإصدارات.

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