مشاركة عبر


تحديث جهاز Azure لمخطط بيان استيراد IoT Hub

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

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

مخطط

تتم استضافة مخطط JSON لبيان الاستيراد في SchemaStore.org ويتكون من الخصائص التالية. لا يسمح بخصائص أخرى.

الخاصية نوع الوصف مطلوب
$schema string مرجع مخطط JSON. لا
updateId updateId معرّف تحديث فريد. ‏‏نعم‬
الوصف string وصف التحديث الاختياري. الحد الأقصى للطول 512 حرفا. لا
التوافق compatibility قائمة بمجموعات خصائص الجهاز التي يتوافق معها هذا التحديث. ‏‏نعم‬
التوجيهات instructions تعليمات تثبيت التحديث. ‏‏نعم‬
الملفات file [0-10] قائمة بملفات البيانات الأساسية للتحديث. لا يمكن أن يتجاوز مجموع جميع أحجام الملفات 2 غيغابايت. يمكن أن تكون فارغة أو خالية إذا كانت جميع خطوات التعليمات خطوات مرجعية. لا
manifestVersion string قم باستيراد إصدار مخطط البيان. يجب أن يكون 5.0. ‏‏نعم‬
createdDateTime string استيراد تاريخ ووقت إنشاء بيان بتنسيق ISO 8601، على سبيل المثال "2020-10-02T22:18:04.9446744Z". ‏‏نعم‬

تحديث الكائن

الكائن updateID هو معرف فريد لكل تحديث.

الخاصية نوع الوصف مطلوب
provider string الكيان الذي يقوم بإنشاء التحديث أو المسؤول مباشرة عنه. يمكن أن يكون الموفر اسم شركة.
النمط: ^[a-zA-Z0-9.-]+$
حد أقصى: 64 حرفًا
‏‏نعم‬
الاسم string معرف فئة من التحديثات. يمكن أن يكون الاسم فئة جهاز أو اسم طراز.
النمط: ^[a-zA-Z0-9.-]+$
حد أقصى: 64 حرفًا
‏‏نعم‬
إصدار string أرقام إصدارات رقمية مفصولة بنقطة من جزأين إلى أربعة أجزاء. يجب أن يكون كل جزء رقما بين 0 و 2147483647، ويتم إسقاط الأصفار البادئة.
النمط: ^\d+(?:\.\d+)+$
الأمثلة: "1.0"، "2021.11.8"
‏‏نعم‬

لا يسمح بخصائص أخرى.

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

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

كائن التوافق

compatibility يصف الكائن 1-5 خصائص لجهاز يتوافق معه هذا التحديث. كل خاصية هي string زوج اسم-قيمة نوع. يجب أن يكون الاسم من 1 إلى 32 حرفا ويجب أن تكون القيمة من 1 إلى 64 حرفا. لا يمكنك استخدام نفس المجموعة الدقيقة من خصائص التوافق مع أكثر من موفر تحديث ومجموعة أسماء.

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

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

كائن الإرشادات

instructions يوفر الكائن إرشادات تثبيت التحديث. يحتوي كائن الإرشادات على قائمة steps ليتم تنفيذها. لا يسمح بخصائص أخرى.

يمكن أن تكون الخطوات إما تعليمات برمجية لتنفيذها أو المؤشرات إلى تحديثات أخرى. يتم تعيين عنصر الخطوة افتراضيا إلى inline إذا لم يتم توفير قيمة type .

الخاصية نوع الوصف مطلوب
steps array[1-10] يجب أن يكون كل عنصر في steps الصفيف إما كائن خطوة مضمنة أو كائن خطوة مرجعية. ‏‏نعم‬

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

{
  "instructions": {
    "steps": [
      {
        "type": "inline",
        ...
      },
      {
        "type": "reference",
        ...
      }
    ]
  }
}

كائن الخطوة المضمنة

كائن inline الخطوة هو خطوة تعليمات التثبيت التي تنفذ تنفيذ التعليمات البرمجية.

الخاصية نوع الوصف مطلوب
النوع string نوع خطوة التعليمات التي تقوم بتنفيذ التعليمات البرمجية. يجب أن يكونinline. يتم تعيين الإعدادات الافتراضية إلى inline إذا لم يتم توفير أي قيمة. لا
الوصف string ووصف خطوة التعليمات الاختيارية. الحد الأقصى للطول: 64 حرفا. لا
معالج string هوية المعالج على الجهاز والذي يمكنه تنفيذ هذه الخطوة.
النمط: ^\S+/\S+:\d{1,5}$
الحد الأدنى للطول: خمسة أحرف
حد أقصى: 32 حرفًا
الأمثلة: microsoft/script:1، microsoft/swupdate:2، microsoft/apt:1
‏‏نعم‬
الملفات string [1-10] أسماء ملفات التحديث المعرفة كعناصر ملفات يمررها العامل إلى المعالج. يجب أن يتراوح طول كل عنصر من 1 إلى 255 حرفا. ‏‏نعم‬
handlerProperties inlineStepHandlerProperties كائنات JSON التي يمررها العامل إلى المعالج كوسيطات. لا

لا يسمح بخصائص أخرى.

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

{
  "steps": [
    {
      "description": "pre-install script",
      "handler": "microsoft/script:1",
      "handlerProperties": {
        "arguments": "--pre-install"
      },
      "files": [
        "configure.sh"
      ]
    }
  ]
}

كائن خطوة مرجعية

reference كائن الخطوة هو خطوة تعليمات التثبيت لتثبيت تحديث آخر.

الخاصية نوع الوصف مطلوب
النوع referenceStepType نوع خطوة التعليمات التي تقوم بتثبيت تحديث آخر. يجب أن يكونreference. ‏‏نعم‬
الوصف stepDescription ووصف خطوة التعليمات الاختيارية. الحد الأقصى للطول: 64 حرفا. لا
updateId updateId معرّف تحديث فريد. ‏‏نعم‬

لا يسمح بخصائص أخرى.

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

{
  "steps": [
    {
      "type": "reference",
      "updateId": {
        "provider": "Contoso",
        "name": "Toaster.HeatingElement",
        "version": "1.0"
      }
    }
  ]
}

كائن الملفات

كل files كائن هو ملف حمولة تحديث، مثل ملف ثنائي أو برنامج ثابت أو برنامج نصي، يجب أن يكون فريدا داخل تحديث.

الخاصية نوع الوصف مطلوب
filename string تحديث اسم ملف البيانات الأساسية. حد أقصى: 255 حرفًا ‏‏نعم‬
sizeInBytes number حجم الملف بعدد البايت. الحجم الأقصى: 2147483648 بايت ‏‏نعم‬
hashes fileHashes تجزئة الملف بترميز Base64 مع اسم الخوارزمية كمفتاح. يجب تحديد خوارزمية SHA-256 على الأقل، وقد يتم تحديد خوارزميات إضافية إذا كان مدعوما من قبل العامل. راجع كائن التجزئة للحصول على تفاصيل حول كيفية حساب التجزئة. ‏‏نعم‬
ملفات تعريف ذات صلة relatedFile[0-4] مجموعة من الملفات المتعلقة بملفات حمولة أساسية واحدة أو أكثر. لمزيد من المعلومات، راجع كائن relatedFiles. لا
downloadHandler downloadHandler تحديد كيفية معالجة أي ملفات ذات صلة. نعم، إذا كنت تستخدم relatedFiles. لمزيد من المعلومات، راجع تنزيل عنصرHandler.

لا يسمح بخصائص أخرى.

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

{
  "files": [
    {  
      "fileName": "full-image-file-name",
      "sizeInBytes": 12345,
      "hashes": {...},
      "relatedFiles": [
        {
          "fileName": "delta-from-v1-file-name",
          "sizeInBytes": 1234,
          "hashes": {
            "SHA256": "delta-from-v1-file-hash"
          },
          "properties": {...}
        }  
      ],
      "downloadHandler": {
        "id": "microsoft/delta:1"
        }
    }
  ]
}

كائن التجزئة

hashes يحتوي الكائن على تجزئات ملف مشفر ب base64 مع أسماء الخوارزميات كمفاتيح. يجب تحديد خوارزمية SHA-256 على الأقل، ويمكن تحديد خوارزميات أخرى إذا كان الوكيل يدعمها. للحصول على مثال حول كيفية حساب التجزئة بشكل صحيح، راجع الدالة Get-AduFileHashes في البرنامج النصي AduUpdate.psm1.

الخاصية نوع الوصف مطلوب
sha256 string قيمة تشفير رسالة الملف المشفرة Base64 باستخدام خوارزمية SHA-256. ‏‏نعم‬

يسمح بالخصائص الأخرى.

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

{
  "hashes": {
    "sha256": "/CD7Sn6fiknWa3NgcFjGlJ+ccA81s1QAXX4oo5GHiFA="
  }
}

كائن relatedFiles

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

الخاصية نوع الوصف مطلوب
filename string قائمة بالملفات ذات الصلة المقترنة بملف حمولة أساسي. ‏‏نعم‬
sizeInBytes number حجم الملف بعدد البايت. الحد الأقصى للحجم: 2147483648 بايت. ‏‏نعم‬
hashes fileHashes تجزئة الملف بترميز Base64 مع اسم الخوارزمية كمفتاح. لمزيد من المعلومات، راجع كائن التجزئة. ‏‏نعم‬
الخصائص relatedFilesProperties [0-5] ما يصل إلى خمسة أزواج من قيم المفاتيح، حيث يقتصر المفتاح على 64 حرف ASCII والقيمة هي JObject مع ما يصل إلى 256 حرف ASCII. لا

يسمح بالخصائص الأخرى.

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

"relatedFiles": [
  {
    "filename": "in1_in2_deltaupdate.dat",
    "sizeInBytes": 102910752,
    "hashes": {
      "sha256": "2MIldV8LkdKenjJasgTHuYi+apgtNQ9FeL2xsV3ikHY="
    },
    "properties": {
      "microsoft.sourceFileHashAlgorithm": "sha256",
      "microsoft.sourceFileHash": "YmFYwnEUddq2nZsBAn5v7gCRKdHx+TUntMz5tLwU+24="
    }
  }
],

تنزيل كائنHandler

downloadHandler يحدد الكائن كيفية معالجة أي ملفات ذات صلة.

الخاصية نوع الوصف مطلوب
معرف string معرف ل downloadHandler. حد 64 حرفا من ASCII. نعم، إذا كنت تستخدم relatedFiles

لا يسمح بخصائص أخرى.

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

"downloadHandler": {
  "id": "microsoft/delta:1"
}