إعداد تحديث للاستيراد إلى Device Update لـ IoT Hub
تعرّف على كيفية الحصول على تحديث جديد وإعداد التحديث للاستيراد إلى Device Update لـ IoT Hub.
المتطلبات الأساسية
الوصول إلى IoT Hub مع تمكين Device Update ل IoT Hub.
بيئة Azure CLI:
استخدم بيئة Bash في Azure Cloud Shell.
أو، إذا كنت تفضل تشغيل أوامر مرجع CLI محليًا قم بتثبيت CLI Azure
- قم بتسجيل الدخول إلى CLI Azure باستخدام az login.
- يُرجى تشغيل إصدار az للوصول إلى الإصدار والمكتبات التابعة التي تم تثبيتها. للتحديث لآخر إصدار، يُرجى تشغيل تحديث az.
- عند المطالبة، قم بتثبيت ملحقات Azure CLI عند الاستخدام لأول مرة. تستخدم الأوامر الواردة في هذه المقالة ملحق azure-iot. قم بتشغيل
az extension update --name azure-iot
للتأكد من أنك تستخدم أحدث إصدار من الملحق.
تلميح
تستخدم أوامر Azure CLI في هذه المقالة حرف خط مائل \
عكسي لمتابعة السطر بحيث تكون وسيطات الأمر أسهل في القراءة. يعمل بناء الجملة هذا في بيئات Bash. إذا كنت تقوم بتشغيل هذه الأوامر في PowerShell، فاستبدل كل مائل عكسي بخلفية ''، أو قم بإزالتها بالكامل.
احصل على تحديث لأجهزتك
الآن بعد أن قمت بإعداد تحديث الجهاز وتوفير أجهزتك، تحتاج إلى ملف (ملفات) التحديث الذي ستقوم بنشره على تلك الأجهزة.
إذا اشتريت أجهزة من الشركة المصنعة للمعدات الأصلية (OEM) أو مؤسسة للحلول المتكاملة، فمن المرجح أن توفر هذه المؤسسة ملفات تحديث لك، دون الحاجة إلى إنشاء التحديثات. اتصل بالشركة المصنعة للمعدات الأصلية أو مؤسسة للحلول المتكاملة لمعرفة طريقة توفير التحديثات.
إذا أنشأت مؤسستك برنامجا للأجهزة التي تستخدمها، فستنشئ نفس المجموعة تحديثات لهذا البرنامج.
عند إنشاء تحديث ليتم توزيعه باستخدام Device Update لـ IoT Hub، ابدأ إما بـ النهج المستند إلى الصورة أو المستند إلى الحزمة اعتمادا على السيناريو الخاص بك.
إنشاء بيان استيراد أساسي لتحديث الجهاز
بمجرد الحصول على ملفات التحديث الخاصة بك، أنشئ بيان استيراد لوصف التحديث. إذا لم تكن قد فعلت ذلك بالفعل، فتعرف على مفاهيم الاستيراد الأساسية. في حين أنه من الممكن تأليف بيان استيراد JSON يدويا باستخدام محرر نص، تعمل واجهة سطر الأوامر Azure (CLI) على تبسيط العملية بشكل كبير، ويتم استخدامها في الأمثلة أدناه.
تلميح
جرب البرامج التعليمية المستندة إلى الصور أو الحزمة أو تحديث الوكيل إذا لم تكن قد أجريت ذلك بالفعل. كما يمكنك عرض نماذج ملفات بيان الاستيراد من تلك البرامج التعليمية للرجوع إليها.
يأخذ الأمر az iot du init v5 الوسيطات التالية:
--update-provider
،--update-name
و--update-version
: تحدد هذه المعلمات الثلاث كائن updateId الذي هو معرف فريد لكل تحديث.--compat
: كائن التوافق هو مجموعة من أزواج قيمة الاسم التي تصف خصائص الجهاز الذي يتوافق معه هذا التحديث.- لا يمكن استخدام نفس المجموعة الدقيقة من خصائص التوافق مع أكثر من موفر واحد ومجموعة أسماء.
--step
: معالج التحديث على الجهاز (على سبيل المثال،microsoft/script:1
أوmicrosoft/swupdate:1
أوmicrosoft/apt:1
) والخصائص المقترنة به لهذا التحديث.--file
: المسارات إلى ملف التحديث أو الملفات.
لمزيد من المعلومات حول هذه المعلمات، راجع استيراد المخطط ومعلومات واجهة برمجة التطبيقات.
az iot du update init v5 \
--update-provider <replace with your Provider> \
--update-name <replace with your update Name> \
--update-version <replace with your update Version> \
--compat <replace with the property name>=<replace with the value your device will report> <replace with the property name>=<replace with the value your device will report> \
--step handler=<replace with your chosen handler> properties=<replace with any handler properties (JSON-formatted)> \
--file path=<replace with path(s) to your update file(s), including the full file name>
على سبيل المثال:
az iot du update init v5 \
--update-provider Microsoft \
--update-name AptUpdate \
--update-version 1.0.0 \
--compat manufacturer=Contoso model=Vacuum \
--step handler=microsoft/script:1 properties='{"installedCriteria": "1.0"}' \
--file path=/my/apt/manifest/file
بالنسبة لخصائص المعالج، قد تحتاج إلى إلغاء أحرف معينة في JSON الخاص بك. على سبيل المثال، استخدم '\'
للهروب من علامات الاقتباس المزدوجة إذا كنت تقوم بتشغيل Azure CLI في PowerShell.
init
يدعم الأمر السيناريوهات المتقدمة، بما في ذلك ميزة الملفات ذات الصلة التي تسمح لك بتعريف العلاقة بين ملفات التحديث المختلفة. لمزيد من الأمثلة وقائمة كاملة بالمعلمات الاختيارية، راجع az iot du init v5.
بمجرد إنشاء بيان الاستيراد وحفظه كملف JSON، تصبح جاهزا لاستيراد التحديث. إذا كنت تخطط لاستخدام واجهة مستخدم مدخل Microsoft Azure للاستيراد، فتأكد من تسمية بيان الاستيراد بالتنسيق التالي: "<manifestname>.importmanifest.json".
أنشئ بيان استيراد متقدم لـ Device Update لتحديث الوكيل
في حال كان التحديث أكثر تعقيدا، مثل proxy update، فقد تحتاج إلى إنشاء بيانات استيراد متعددة. يمكنك استخدام نفس نهج Azure CLI من القسم السابق لإنشاء كل من بيان استيراد أصل وعدد من بيانات الاستيراد التابعة للتحديثات المعقدة. قم بتشغيل أوامر Azure CLI التالية بعد استبدال قيم المعلمات النموذجية بقيم المعلمة الخاصة بك. راجع استيراد المخطط ومعلومات واجهة برمجة التطبيقات للحصول على تفاصيل حول القيم التي يمكنك استخدامها. في المثال أدناه، هناك ثلاثة تحديثات ليتم نشرها على الجهاز: تحديث أصل واحد وتحديثان تابعان:
az iot du update init v5 \
--update-provider <replace with child_1 update Provider> \
--update-name <replace with child_1 update Name> \
--update-version <replace with child_1 update Version> \
--compat manufacturer=<replace with the value your device will report> model=<replace with the value your device will report> \
--step handler=<replace with your chosen handler> \
--file path=<replace with path(s) to your update file(s), including the full file name> \
az iot du update init v5 \
--update-provider <replace with child_2 update Provider> \
--update-name <replace with child_2 update Name> \
--update-version <replace with child_2 update Version> \
--compat manufacturer=<replace with the value your device will report> model=<replace with the value your device will report> \
--step handler=<replace with your chosen handler> \
--file path=<replace with path(s) to your update file(s), including the full file name> \
az iot du update init v5 \
--update-provider <replace with the parent update Provider> \
--update-name <replace with the parent update Name> \
--update-version <replace with the parent update Version> \
--compat manufacturer=<replace with the value your device will report> model=<replace with the value your device will report> \
--step handler=<replace with your chosen handler> properties=<replace with any desired handler properties (JSON-formatted)> \
--file path=<replace with path(s) to your update file(s), including the full file name> \
--step updateId.provider=<replace with child_1 update provider> updateId.name=<replace with child_1 update name> updateId.version=<replace with child_1 update version> \
--step updateId.provider=<replace with child_2 update provider> updateId.name=<replace with child_2 update name> updateId.version=<replace with child_2 update version> \