تحديث جهاز 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
الخطوة هو خطوة تعليمات التثبيت التي تنفذ تنفيذ التعليمات البرمجية.
لا يسمح بخصائص أخرى.
على سبيل المثال:
{
"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"
}