البرنامج التعليمي: Device Update لـ Azure IoT Hub باستخدام الوكيل المرجعي لمحاكاة Ubuntu (18.04 x64)

يوضح هذا البرنامج التعليمي تحديثا قائما على الصور من طرف إلى طرف باستخدام تحديث الجهاز ل IoT Hub. يدعم Device Update لـ Azure IoT Hub التحديثات المستندة إلى الصور والقائمة على الحزم والبرامج النصية.

تتيح تحديثات الصور مستوى أعلى من الثقة في الحالة النهائية للجهاز. عادة ما يكون من الأسهل نسخ نتائج تحديث الصورة بين بيئة ما قبل الإنتاج وبيئة الإنتاج لأنها لا تشكل نفس التحديات مثل إدارة الحزم وتبعياتها. يمكنك أيضًا اعتماد نموذج تجاوز الفشل A / B بسهولة، بسبب طبيعتها الذرية.

في هذا البرنامج التعليمي، ستتعلّم كيفية:

  • قم بتعيين جهاز IoT إلى مجموعة Device Update باستخدام العلامات.
  • نزل صورة وثبتها.
  • استورد تحديث.
  • استخدم تحديث صورة.
  • راقب توزيع التحديث.

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

  • إنشاء حساب Device Update ومثيل تم تكوينهما باستخدام مركز IoT.

  • لديك جهاز Ubuntu 18.04. يمكن أن يكون هذا الجهاز إما ماديا أو جهازا ظاهريا.

  • نزل الملف المضغوط المسمى Tutorial_Simulator.zip من "Release Assets" في أحدث إصدار، وفك ضغطه.

    إذا كان جهاز الاختبار الخاص بك مختلفا عن جهاز التطوير الخاص بك، فنزل الملف المضغوط على كليهما.

    يمكنك استخدام wget لتنزيل الملف المضغوط. استبدل <release_version> بأحدث إصدار، على سبيل المثال 1.0.0.

    wget https://github.com/Azure/iot-hub-device-update/releases/download/<release_version>/Tutorial_Simulator.zip
    

تسجيل جهاز وتكوين هوية وحدة نمطية

أضف جهازا إلى سجل الجهاز في مركز IoT الخاص بك. يجب تسجيل كل جهاز يتصل بمركز IoT.

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

  1. من مدخل Microsoft Azure، انتقل إلى مركز IoT الخاص بك.
  2. في الجزء الأيسر، حدد ⁧⁩Devices⁧⁩. ثم حدد إضافة جهاز.
  3. ضمن Device ID، أدخل اسما للجهاز. تأكد من تحديد خانة الاختيار Autogenerate keys.
  4. حدد ⁧⁩حفظ⁧⁩.
  5. سيتم إرجاعك الآن إلى الصفحة Devices ويجب أن يكون الجهاز الذي أنشأته في القائمة. حدِّد هذا الجهاز.
  6. حدد إضافة هوية الوحدة النمطية.
  7. ضمن اسم هوية الوحدة النمطية، أدخل اسما للوحدة النمطية، على سبيل المثال، DUAgent.
  8. تحديد الحفظ

نسخ سلسلة اتصال الوحدة النمطية

  1. في طريقة عرض الجهاز، يجب أن تشاهد الوحدة النمطية الجديدة مدرجة ضمن عنوان هويات الوحدة النمطية . حدد اسم الوحدة النمطية لفتح تفاصيلها.
  2. حدد أيقونة Copy بجوار سلسلة الاتصال (المفتاح الأساسي) . احفظ سلسلة الاتصال هذه لاستخدامها عند تكوين عامل Device Update. هذه السلسلة هي سلسلة اتصال الوحدة النمطية الخاصة بك.

إضافة علامة إلى الوحدة النمطية المزدوجة

  1. لا يزال في صفحة تفاصيل هوية الوحدة النمطية، حدد Module Identity Twin

  2. أضف قيمة علامة Device Update جديدة بنفس مستوى modelId الملف المزدوج وفيه version ، كما هو موضح:

    "tags": {
        "ADUGroup": "DU-simulator-tutorial"
    },
    

    لقطة شاشة لعلامة ADUGroup في الوحدة المزدوجة.

    يحتاج كل جهاز تتم إدارته بواسطة Device Update إلى هذه العلامة المحجوزة، والتي تعين الجهاز إلى مجموعة Device Update. يمكن أن يكون في الجهاز المزدوج أو في وحدة مزدوجة، كما هو موضح هنا. يمكن تعيين كل جهاز إلى مجموعة تحديث جهاز واحدة فقط.

  3. حدد ⁧⁩حفظ⁧⁩. يقوم المدخل بإعادة تنسيق الوحدة المزدوجة لدمج العلامة في بنية json.

تثبيت وتكوين عامل Device Update

يعمل عامل Device Update على كل جهاز تتم إدارته بواسطة Device Update. لهذا البرنامج التعليمي، سنقوم بتكوينه لتشغيله كمحاكي حتى نتمكن من رؤية كيفية تطبيق تحديث على جهاز دون تغيير تكوين الجهاز فعليا.

  1. على جهاز IoT، أضف مستودع حزمة Microsoft ثم أضف مفتاح توقيع حزمة Microsoft إلى قائمة المفاتيح الموثوق بها.

    wget https://packages.microsoft.com/config/ubuntu/18.04/multiarch/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    rm packages-microsoft-prod.deb   
    
  2. قم بتثبيت حزم عامل Device Update .deb.

    sudo apt-get update
    sudo apt-get install deviceupdate-agent
    
  3. افتح ملف تكوين العامل.

    sudo nano /etc/adu/du-config.json
    
  4. تحديث القيم التالية في ملف التكوين:

    • الشركة المصنعة: "Contoso" - تستخدم هذه القيمة لتصنيف جهاز IoT لاستهداف التحديثات.
    • النموذج: "Video" - تستخدم هذه القيمة لتصنيف جهاز IoT لاستهداف التحديثات.
    • الاسم: "aduagent"
    • agents.connectionData: قم بتوفير سلسلة الاتصال التي نسختها من هوية الوحدة النمطية.
    • agents.manufacturer: "Contoso"
    • agents.model: "Video"

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

    ملاحظة

    يمكنك أيضا استخدام خدمة هوية IoT لتوفير الجهاز. للقيام بذلك، قم بتثبيت خدمة iot indentity قبل تثبيت عامل Device Update. ثم قم بتكوين عامل Device Update مع "connectionType": "AIS" و connectionData كسلسلة فارغة في ملف التكوين.

  5. حفظ وإغلاق الملف. CTRL+Xو Yو و Enter.

  6. إعداد عامل للتشغيل كمحاكي. قم بتشغيل الأمر التالي على جهاز IoT بحيث يستدعي عامل Device Update معالج المحاكي لمعالجة تحديث حزمة باستخدام SWUpdate (microsoft/swupdate:1).

      sudo /usr/bin/AducIotAgent --extension-type updateContentHandler --extension-id 'microsoft/swupdate:1' --register-extension /var/lib/adu/extensions/sources/libmicrosoft_simulator_1.so
    
  7. قم بفك ضغط Tutorial_Simulator.zip الملف الذي قمت بتنزيله في المتطلبات الأساسية وانسخ sample-du-simulator-data.json الملف إلى tmp المجلد.

    cp sample-du-simulator-data.json /tmp/du-simulator-data.json
    

    إذا لم يكن /tmp موجودا، فقم بتشغيل:

    sudo mkdir/tmp
    sudo chown root:root/tmp
    sudo chmod 1777/tmp
    
  8. تغيير أذونات الملف الجديد.

    sudo chown adu:adu /tmp/du-simulator-data.json
    sudo chmod 664 /tmp/du-simulator-data.json
    
  9. أعد تشغيل عامل Device Update لتطبيق التغييرات.

     sudo systemctl restart deviceupdate-agent
    

استيراد تحديث

في هذا القسم، يمكنك استخدام الملفات TutorialImportManifest_Sim.importmanifest.json ومن adu-update-image-raspberrypi3.swu الذي تم تنزيله Tutorial_Simulator.zip في المتطلبات الأساسية. يُعاد استخدام ملف التحديث من البرنامج التعليمي Raspberry Pi. نظرًا لمحاكاة التحديث في هذا البرنامج التعليمي، فإن محتوى الملف المحدد غير مهم.

  1. على جهاز التطوير الخاص بك، سجل الدخول إلى مدخل Microsoft Azure وانتقل إلى مركز IoT الذي تم تكوينه باستخدام Device Update.

  2. في جزء التنقل، ضمن إدارة الجهاز، حدد التحديثات.

  3. حدد استيراد تحديث جديد.

  4. حدد Select from storage container.

  5. حدد حساب تخزين موجودا أو أنشئ حسابا جديدا عن طريق تحديد + حساب التخزين. ثم حدد حاوية موجودة أو أنشئ حاوية جديدة عن طريق تحديد + Container. سيتم استخدام هذه الحاوية لعرض ملفات التحديث الخاصة بك للاستيراد.

    ملاحظة

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

    لقطة شاشة توضح حساب التخزين والحاويات.

  6. في الحاوية، حدد Upload وانتقل إلى الملفات التي قمت بتنزيلها في المتطلبات الأساسية. حدد ملفات TutorialImportManifest_Sim.importmanifest.json وملفات adu-update-image-raspberrypi3.swu ، ثم حدد Upload.

  7. حدد خانة الاختيار حسب كل ملف، ثم حدد الزر تحديد للعودة إلى صفحة استيراد التحديث .

    لقطة شاشة توضح تحديد الملفات التي تم تحميلها في الحاوية.

  8. في صفحة Import update، راجع الملفات التي سيتم استيرادها. ثم حدد Import update لبدء عملية الاستيراد.

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

  9. تبدأ عملية الاستيراد وتتغير الشاشة إلى قسم Import History. يعرض عمود الحالة الاستيراد على أنه قيد التشغيل أثناء عملية الاستيراد قيد التقدم، وينجح عند اكتمال الاستيراد. استخدم الزر تحديث لتحديث الحالة.

  10. عندما يشير عمود Status إلى نجاح الاستيراد، حدد العنوان Available updates. يجب أن تشاهد التحديث المستورد في القائمة الآن.

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

لمزيد من المعلومات حول عملية الاستيراد، راجع استيراد تحديث إلى تحديث الجهاز ل IoT Hub.

عرض مجموعات الأجهزة

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

  1. انتقل إلى علامة التبويب المجموعات والنشرات في أعلى صفحة التحديثات.

  2. عرض قائمة المجموعات ومخطط توافق التحديث. يعرض مخطط توافق التحديث عدد الأجهزة في حالات التوافق المختلفة: على آخر تحديث، وتحديثات جديدة متاحة، وتحديثات قيد التقدم. تعرف على كيفية توافق التحديث.

    لقطة شاشة توضح طريقة عرض توافق التحديث.

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

لمزيد من المعلومات حول العلامات والمجموعات، راجع إدارة مجموعات الأجهزة.

استخدام تحديث

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

  2. حدد اسم المجموعة لعرض تفاصيله.

  3. في صفحة تفاصيل المجموعة، يجب أن ترى أن هناك تحديثا جديدا واحدا متوفرا. حدد Deploy لبدء التوزيع.

    لقطة شاشة توضح بدء نشر تحديث المجموعة.

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

  5. قم بجدولة التوزيع لبدء التشغيل على الفور، ثم حدد إنشاء.

  6. في صفحة تفاصيل المجموعة، انتقل إلى علامة التبويب التحديثات الحالية . ضمن تفاصيل التوزيع، تتحول الحالة إلى نشط.

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

مراقبة نشر التحديث

  1. ارجع إلى صفحة تفاصيل المجموعة وحدد علامة التبويب محفوظات النشر .

  2. حدد View deployment details بجوار التوزيع الذي أنشأته.

    لقطة شاشة تعرض تفاصيل الاستخدام.

  3. حدد Refresh لعرض تفاصيل الحالة الأخيرة.

أكملت الآن تحديث صورة شاملة ناجحة باستخدام Device Update لـ IoT Hub باستخدام العامل المرجعي للمحاكي Ubuntu (18.04 x64).

تنظيف الموارد

إذا كنت ستستمر في البرنامج التعليمي التالي، فاحتفظ بتحديث الجهاز وموارد IoT Hub.

عند عدم الحاجة إليها، يمكنك حذف هذه الموارد في مدخل Microsoft Azure.

  1. انتقل إلى مجموعة الموارد الخاصة بك في ⁧⁩مدخل Azure⁧⁩.

  2. اختر الموارد التي يجب حذفها.

    • إذا كنت تريد حذف جميع الموارد في المجموعة، فحدد حذف مجموعة الموارد.
    • إذا كنت تريد حذف موارد محددة فقط، فاستخدم خانات الاختيار لتحديد الموارد ثم حدد حذف.

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

في هذا البرنامج التعليمي، تعلمت كيفية استيراد ونشر تحديث صورة. بعد ذلك، تعرف على كيفية تحديث حزم الأجهزة.