استيراد التحديثات إلى Device Update لمركز IoT

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

بيان الاستيراد

بيان الاستيراد هو ملف JSON يحدد معلومات مهمة حول التحديث الذي تقوم باستيراده. يمكنك إرسال كل من بيان الاستيراد وملف التحديث المقترن أو الملفات (مثل حزمة تحديث البرنامج الثابت) كجزء من عملية الاستيراد. يتم استخدام بيانات التعريف المحددة في بيان الاستيراد لاستيعاب التحديث. يتم أيضا استخدام بعض بيانات التعريف في وقت النشر - على سبيل المثال، للتحقق مما إذا تم تثبيت تحديث بشكل صحيح.

على سبيل المثال:

{
  "updateId": {
    "provider": "Contoso",
    "name": "Toaster",
    "version": "1.0"
  },
  "isDeployable": false,
  "compatibility": [
    {
      "manufacturer": "Contoso",
      "model": "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": "5.0"
}

يحتوي بيان الاستيراد على عدة عناصر تمثل تحديث الجهاز الهام لمفاهيم مركز IoT. ويرد بيان هذه العناصر في هذا القسم. للحصول على معلومات حول مخطط الاستيراد الكامل، راجع استيراد بيان مخطط JSON.

تحديث الهوية

هوية التحديث أو updateId هو المعرف الفريد لتحديث في Device Update لمركز IoT. يتكون من ثلاثة أجزاء:

  • الموفر: الكيان الذي يقوم بإنشاء التحديث أو المسؤول مباشرة عنه. وغالبًا ما يكون اسم الشركة.
  • الاسم: معرف فئة من التحديثات. غالبًا ما تكون فئة الجهاز أو اسم النموذج.
  • الإصدار: رقم إصدار يميز هذا التحديث عن الآخرين الذين لديهم نفس الموفر والاسم.

على سبيل المثال:

{
  "updateId": {
    "provider": "Contoso",
    "name": "Toaster",
    "version": "1.0"
  }
}

ملاحظة

يتم استخدام UpdateId من قبل خدمة تحديث الجهاز فقط، وقد يختلف عن هويات مكونات البرامج الفعلية على الجهاز.

التوافق

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

فيما يلي مثال على تحديث لا يمكن نشره إلا على جهاز يبلغ عن ContosoوStuper كشركة مصنعة للجهاز وطرازه.

{
  "compatibility": [
    {
      "manufacturer": "Contoso",
      "model": "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 بيانات التعريف هذه للتحقق من صحة التكامل أثناء عملية الاستيراد. ثم تتم إعادة توجيه نفس المعلومات إلى عامل الجهاز لتكرار التحقق من السلامة قبل التثبيت.

ملاحظة

لن يحتوي التحديث الذي يحتوي على خطوات مرجعية فقط على أي ملف حمولة تحديث في التحديث الأصل.

إنشاء بيان استيراد

في حين أنه من الممكن تأليف بيان استيراد JSON يدويا باستخدام محرر نص، فإن واجهة سطر الأوامر Azure (CLI) تبسط العملية بشكل كبير. عندما تكون مستعدا لتجربة إنشاء بيان استيراد، يمكنك استخدام دليل الكيفية.

هام

يجب أن ينتهي اسم ملف JSON لبيان الاستيراد بـ.importmanifest.json عند استيراده من خلال مدخل Microsoft Azure.

تلميح

استخدم Visual Studio Code لتمكين الإكمال التلقائي والتحقق من صحة مخطط JSON عند إنشاء بيان استيراد.

القيود المفروضة على استيراد التحديثات

يتم فرض حدود معينة لكل تحديث جهاز لمثيل مركز IoT. إذا لم تكن قد راجعتها بالفعل، فراجع حدود تحديث الجهاز.

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