تحديث جهاز Azure لبيان تحديث IoT Hub
توضح هذه المقالة بيانات بيان التحديث التي يرسلها Azure Device Update ل IoT Hub إلى الأجهزة أثناء نشر التحديث. بيان التحديث هو كائن سلسلة JSON متسلسل يحتوي على بيانات تعريف حول التحديث المراد تثبيته.
يستخدم تحديث الجهاز أجهزة التوصيل و التشغيل IoT لإرسال بيان التحديث، ويوقعه بشكل مشفر بحيث يمكن لعامل Device Update التحقق من أصالته. لمزيد من المعلومات حول كيفية استخدام بيان التحديث لتثبيت المحتوى بشكل آمن، راجع أمان تحديث الجهاز.
بيان الاستيراد مقابل بيان التحديث
يختلف بيان التحديث عن بيان استيراد تحديث الجهاز.
- بيان الاستيراد هو ملف JSON يصف التحديث المراد استيراده إلى تحديث الجهاز. يقوم كل من يقوم بإنشاء التحديث لتحديث الجهاز بإنشاء ملف بيان الاستيراد المقابل.
- بيان التحديث هو كائن سلسلة JSON الذي ينقل المعلومات إلى عامل تحديث الجهاز أثناء التحديث. تنشئ خدمة Device Update بيان التحديث تلقائيا عن طريق تضمين بعض الخصائص نفسها المحددة في بيان الاستيراد.
لكل نوع بيان إصدار مخطط ومخطط خاص به. لمزيد من المعلومات حول مخطط بيان الاستيراد، راجع مخطط بيان استيراد تحديث الجهاز.
تحديث مخطط البيان
تتم استضافة الإصدار 4 من مخطط JSON لبيان التحديث في SchemaStore.org.
مثال على بيان التحديث
{
"manifestVersion": "4",
"updateId": {
"provider": "Contoso",
"name": "Toaster",
"version": "1.0"
},
"compatibility": [
{
"manufacturer": "Contoso",
"model": "Toaster"
}
],
"instructions": {
"steps": [
{
"handler": "microsoft/swupdate:2",
"handlerProperties": {
"installedCriteria": "1.0"
},
"files": [
"fileId0"
]
}
]
},
"files": {
"fileId0": {
"filename": "contoso.toaster.1.0.swu",
"sizeInBytes": 718,
"hashes": {
"sha256": "mcB5SexMU4JOOzqmlJqKbue9qMskWY3EI/iVjJxCtAs="
}
}
},
"createdDateTime": "2021-09-28T18:32:01.8404544Z"
}
بيان التحديث الكامل مقابل المصغر
إذا كان بيان التحديث كبيرا جدا بحيث لا يمكن توصيله بكفاءة، فسيرسله Device Update إلى الجهاز بتنسيق منفصل، ويسمى أيضا بيان تحديث مصغر. يحتوي البيان المصغر على بيانات تعريف حول بيان التحديث الذي يمكن لعامل Device Update استخدامه لتنزيل بيان التحديث الكامل والتحقق من أصالته.
يوضح المثال التالي بيان تحديث مصغر:
{
"manifestVersion": "4",
"updateId": {
"provider": "Contoso",
"name": "Toaster",
"version": "1.0"
},
"detachedManifestFileId": "fileId1",
"files": {
"fileId1": {
"filename": "contoso.toaster.1.0.updatemanifest.json",
"sizeInBytes": 2048,
"hashes": {
"sha256": "789s9PDfX4uA9wFUubyC30BWkLFbgmpkpmz1fEdqo2U="
}
}
}
}