استيراد التحديثات إلى تحديث الجهاز لمركز إنترنت الأشياء
لنشر تحديث على الأجهزة من تحديث الجهاز ل IoT Hub، يجب عليك أولا استيراد هذا التحديث إلى خدمة "تحديث الجهاز". فيما يلي نظرة عامة على بعض المفاهيم المهمة التي يجب فهمها عندما يتعلق الأمر باستيراد التحديثات.
استيراد بيان
بيان الاستيراد هو ملف JSON يحدد معلومات مهمة حول التحديث الذي تقوم باستيراده. سترسل كل من بيان الاستيراد وملف أو ملفات التحديث المرتبطة به (مثل حزمة تحديث البرنامج الثابت) كجزء من عملية الاستيراد. يتم استخدام بيانات التعريف التي تم تعريفها في بيان الاستيراد لاستيعاب التحديث. يتم استخدام بعض بيانات التعريف أيضا في وقت النشر - على سبيل المثال، للتحقق مما إذا تم تثبيت تحديث بشكل صحيح.
مثال
{
"updateId": {
"provider": "Contoso",
"name": "Toaster",
"version": "1.0"
},
"isDeployable": false,
"compatibility": [
{
"deviceManufacturer": "Contoso",
"deviceModel": "Toaster"
}
],
"instructions": {
"steps": [
{
"handler": "microsoft/swupdate:1",
"files": [
"firmware.swu"
],
"handlerProperties": {
"installedCriteria": "1.0"
}
}
]
},
"files": [
{
"filename": "firmware.swu",
"sizeInBytes": 7558,
"hashes": {
"sha256": "/CD7Sn6fiknWa3NgcFjGlJ+ccA81s1QAXX4oo5GHiFA="
}
}
],
"createdDateTime": "2022-01-19T06:23:52.6996916Z",
"manifestVersion": "4.0"
}
يحتوي بيان الاستيراد على العديد من العناصر التي تمثل تحديث الجهاز المهم لمفاهيم IoT Hub. ويرد بيان هذه في هذا القسم. يتم توثيق المخطط الكامل هنا.
تحديث الهوية (updateId)
هوية التحديث هي المعرف الفريد للتحديث في تحديث الجهاز لمركز إنترنت الأشياء. وهو يتألف من ثلاثة أجزاء:
- الموفر: الكيان الذي يقوم بإنشاء التحديث أو المسؤول عنه مباشرة. غالبا ما يكون اسم شركة.
- الاسم: معرف لفئة من التحديثات. غالبا ما يكون فئة الجهاز أو اسم الطراز.
- الإصدار: رقم إصدار يميز هذا التحديث عن التحديثات الأخرى التي لها نفس الموفر والاسم.
ملاحظة
يتم استخدام UpdateId بواسطة Device Update لخدمة IoT Hub فقط، وقد يختلف عن هوية مكون البرنامج الفعلي على الجهاز.
التوافق
يحدد التوافق معايير الجهاز الذي يمكنه تثبيت التحديث. يحتوي على خصائص الجهاز - مجموعة من أزواج قيم المفاتيح العشوائية التي يتم الإبلاغ عنها من الجهاز. ستكون الأجهزة ذات الخصائص المطابقة فقط مؤهلة للنشر. قد يكون التحديث متوافقا مع فئات أجهزة متعددة من خلال وجود أكثر من مجموعة واحدة من خصائص الجهاز.
فيما يلي مثال على تحديث لا يمكن نشره إلا على جهاز يقوم بالإبلاغ عن Contoso و Toaster كشركة مصنعة للجهاز وطرازه.
{
"compatibility": [
{
"deviceManufacturer": "Contoso",
"deviceModel": "Toaster"
}
]
}
الإرشادات
يحتوي جزء الإرشادات على المعلومات أو الخطوات اللازمة لوكيل الجهاز لتثبيت التحديث. يحتوي أبسط تحديث على خطوة مضمنة واحدة. تقوم هذه الخطوة بتنفيذ ملف الحمولة النافعة المضمن باستخدام معالج مسجل لدى وكيل الجهاز:
{
"instructions": {
"steps": [
{
"handler": "microsoft/swupdate:1",
"files": [
"contoso.toaster.1.0.swu"
]
}
]
}
}
تلميح
handler يعادل updateType الإصدار 3.0 من بيان الاستيراد أو الإصدارات الأقدم.
قد يحتوي التحديث على أكثر من خطوة واحدة:
{
"instructions": {
"steps": [
{
"description": "pre-install script",
"handler": "microsoft/script:1",
"handlerProperties": {
"arguments": "--pre-install"
},
"files": [
"configure.sh"
]
},
{
"description": "firmware package",
"handler": "microsoft/swupdate:1",
"files": [
"contoso.toaster.1.0.swu"
]
}
]
}
}
قد يحتوي التحديث على خطوة مرجعية ترشد وكيل الجهاز إلى تثبيت تحديث آخر مع بيان الاستيراد الخاص به تماما، وإنشاء علاقة تحديث الأصلوالتابع . على سبيل المثال، قد يحتوي تحديث محمصة خبز على تحديثين تابعين:
{
"instructions": {
"steps": [
{
"type": "reference",
"updateId": {
"provider": "Contoso",
"name": "Toaster.HeatingElement",
"version": "1.0"
}
},
{
"type": "reference",
"updateId": {
"provider": "Contoso",
"name": "Toaster.Sensors",
"version": "1.0"
}
}
]
}
}
ملاحظة
قد يحتوي التحديث على أي مجموعة من الخطوات المضمنةوالمرجعية .
الملفات
يحتوي جزء الملفات على بيانات التعريف الخاصة بملفات حمولة التحديث مثل أسمائها وأحجامها والتجزئة. يستخدم تحديث الجهاز ل IoT Hub بيانات التعريف هذه للتحقق من التكامل أثناء عملية الاستيراد. ثم يتم إعادة توجيه نفس المعلومات إلى وكيل الجهاز لتكرار التحقق من صحة التكامل قبل التثبيت.
ملاحظة
لن يحتوي التحديث الذي يحتوي على خطوات مرجعية فقط على أي ملف حمولة تحديث في التحديث الأصل.
إنشاء بيان استيراد
يمكنك استخدام أي محرر نصوص لإنشاء ملف JSON بيان استيراد. هناك أيضا نماذج من البرامج النصية لإنشاء بيان الاستيراد برمجيا في Azure/iot-hub-device-update على GitHub.
هام
يجب أن ينتهي اسم ملف JSON باستيراد .importmanifest.json بيان عند استيراده من خلال مدخل Microsoft Azure.
تلميح
استخدم Visual Studio Code لتمكين الإكمال التلقائي والتحقق من صحة مخطط JSON عند إنشاء بيان استيراد.
القيود المفروضة على استيراد التحديثات
يتم فرض حدود معينة لكل تحديث جهاز لمثيل IoT Hub. إذا لم تكن قد راجعتها بالفعل، يرجى الاطلاع على حدود تحديث الجهاز.
الخطوات التالية
- جرب دليل استيراد How-To ، والذي سيرشدك خلال عملية الاستيراد خطوة بخطوة.
- مراجعة مخطط بيان الاستيراد.