مشاركة عبر


تحديث جهاز Azure لمفاهيم استيراد IoT Hub

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

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

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

تعرض التعليمات البرمجية JSON التالية مثالا لملف بيان الاستيراد:

{
  "updateId": {
    "provider": "Contoso",
    "name": "Toaster",
    "version": "1.0"
  },
  "isDeployable": false,
  "compatibility": [
    {
      "manufacturer": "Contoso",
      "model": "Toaster"
    }
  ],
  "instructions": {
    "steps": [
      {
        "handler": "microsoft/swupdate:2",
        "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"
}

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

تحديث الهوية

هوية التحديث أو updateId هو المعرف الفريد لتحديث في تحديث الجهاز، ويحتوي على الخصائص التالية:

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

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

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

إشعار

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

التوافق

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

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

{
  "compatibility": [
    {
      "manufacturer": "Contoso",
      "model": "Toaster"
    }
  ]
}

الإرشادات

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

{
  "instructions": {
    "steps": [
      {
        "handler": "microsoft/swupdate:2",
        "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:2",
        "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"
        }
      }
    ]
  }
}

الملفات

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

إشعار

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

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

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

هام

للاستيراد إلى خدمة Device Update عبر مدخل Microsoft Azure، يجب أن ينتهي اسم ملف JSON لبيان الاستيراد .importmanifest.json.

تلميح

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

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

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