تطوير وحدات IoT Edge الخاصة بك

ينطبق على:IoT Edge 1.4 checkmark IoT Edge 1.4

هام

IoT Edge 1.4 هو الإصدار المدعوم. إذا كنت تستخدم إصدارا سابقا، فشاهد تحديث IoT Edge.

يمكن لوحدات Azure IoT Edge الاتصال بخدمات Azure الأخرى والمساهمة في خط بيانات السحابة الأكبر. توضح هذه المقالة كيف يمكنك تطوير وحدات للتواصل مع وقت تشغيل IoT Edge وIoT Hub، وبالتالي بقية سحابة Azure.

بيئة وقت التشغيل IoT الحافة

يوفر وقت تشغيل IoT Edge البنية التحتية لدمج وظائف وحدات IoT Edge المتعددة ونشرها على أجهزة IoT Edge. يمكن حزم أي برنامج كوحدة IoT Edge. للاستفادة الكاملة من وظائف الاتصال والإدارة في IoT Edge، يمكن لبرنامج يعمل في وحدة نمطية استخدام Azure IoT Device SDK للاتصال بمركز IoT Edge المحلي.

حزم برنامجك كوحدة IoT Edge

لنشر البرنامج الخاص بك على جهاز IoT Edge، يجب أولا أن يكون في حاويات وتشغيله باستخدام محرك متوافق مع Docker. يستخدم IoT Edge Moby، وهو مشروع مفتوح المصدر خلف Docker، كمحرك متوافق مع Docker. يمكن تمرير نفس المعلمات التي اعتدت على استخدامها مع Docker إلى وحدات IoT Edge. لمزيد من المعلومات، راجع كيفية تكوين خيارات إنشاء الحاوية لوحدات IoT Edge النمطية.

استخدام مركز IoT Edge

يوفر مركز IoT Edge وظيفتين رئيسيتين: وكيل لمركز IoT والاتصالات المحلية.

الاتصال بلوحة وصل IoT Edge من وحدة نمطية

يتضمن الاتصال إلى مركز IoT Edge المحلي من وحدة نمطية نفس خطوات الاتصال مثل أي عملاء. لمزيد من المعلومات، راجع الاتصال إلى مركز IoT Edge.

لاستخدام توجيه IoT Edge عبر AMQP، يمكنك استخدام ModuleClient من Azure IoT SDK. إنشاء مثيل ModuleClient لتوصيل الوحدة النمطية بلوحة وصل IoT Edge قيد التشغيل على الجهاز، على غرار كيفية توصيل مثيلات DeviceClient لأجهزة IoT بلوحة وصل IoT. لمزيد من المعلومات حول فئة ModuleClient وأساليب الاتصال الخاصة بها، راجع مرجع واجهة برمجة التطبيقات للغة SDK المفضلة لديك: C#‎ أو C أو Python أو Java أو Node.js.

الإعدادات الأولية لمركز IoT

يرى IoT Hub مثيل وحدة نمطية مشابها للجهاز. يمكن لمثيل الوحدة النمطية:

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

عند كتابة وحدة نمطية، يمكنك الاتصال بلوحة وصل IoT Edge واستخدام الأوليات الخاصة بموزع IoT كما تفعل عند استخدام IoT Hub مع تطبيق جهاز. الفرق الوحيد بين وحدات IoT Edge وتطبيقات جهاز IoT هو أنه مع الوحدات النمطية لديك للإشارة إلى هوية الوحدة النمطية بدلا من هوية الجهاز.

رسائل من جهاز إلى سحابة

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

لإرسال رسائل بيانات تتبع الاستخدام من جهاز إلى سحابة باستخدام المسارات:

  • استخدم فئة عميل الوحدة النمطية ل Azure IoT SDK. تحتوي كل وحدة نمطية على نقاط نهاية الإدخال والإخراج.
  • استخدم أسلوب إرسال رسالة من فئة Module Client لإرسال رسائل على نقطة نهاية الإخراج للوحدة النمطية الخاصة بك.
  • قم بإعداد مسار في الوحدة النمطية edgeHub لجهازك لإرسال نقطة نهاية الإخراج هذه إلى IoT Hub.

لمعالجة الرسائل باستخدام المسارات:

  • قم بإعداد مسار لإرسال رسائل قادمة من نقطة نهاية أخرى (وحدة نمطية أو جهاز) إلى نقطة نهاية الإدخال للوحدة النمطية.
  • استمع إلى الرسائل الموجودة على نقطة نهاية الإدخال للوحدة النمطية الخاصة بك. في كل مرة تأتي رسالة جديدة مرة أخرى، يتم تشغيل دالة رد الاتصال بواسطة SDK IoT Azure.
  • عالج رسالتك باستخدام دالة رد الاتصال هذه وأرسل (اختياريا) رسائل جديدة في قائمة انتظار نقطة نهاية الوحدة النمطية.

إشعار

لمعرفة المزيد حول الإعلان عن مسار، راجع التعرف على كيفية نشر الوحدات النمطية وإنشاء المسارات في IoT Edge

العمليات المزدوجة

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

  • للحصول على وحدة نمطية مزدوجة مع Azure IoT SDK، قم باستدعاء ModuleClient.getTwin الأسلوب .

  • لتلقي تصحيح وحدة نمطية مزدوجة مع Azure IoT SDK، قم بتنفيذ دالة رد الاتصال وتسجيلها باستخدام ModuleClient.moduleTwinCallback الأسلوب من Azure IoT SDK بحيث يتم تشغيل وظيفة رد الاتصال في كل مرة يأتي فيها تصحيح مزدوج.

تلقي طرق مباشرة

لتلقي أسلوب مباشر مع Azure IoT SDK، قم بتنفيذ دالة رد الاتصال وتسجيلها باستخدام ModuleClient.methodCallback الأسلوب من Azure IoT SDK بحيث يتم تشغيل دالة رد الاتصال في كل مرة يأتي فيها أسلوب مباشر.

دعم اللغة والهندسة

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

Linux

لجميع اللغات في الجدول التالي، يدعم IoT Edge تطوير حاويات AMD64 ومعظم حاويات ARM64 Linux. هناك دعم لحاويات Debian 11 ARM32، أيضا.

لغة التطوير أدوات التطوير
C Visual Studio Code
Visual Studio 2019/2022
C#‎ Visual Studio Code
Visual Studio 2019/2022
Java Visual Studio Code
Node.js Visual Studio Code
Python Visual Studio Code

إشعار

للتحويل البرمجي عبر الأنظمة الأساسية، مثل التحويل البرمجي لوحدة ARM32 IoT Edge على جهاز تطوير AMD64، تحتاج إلى تكوين جهاز التطوير لتجميع التعليمات البرمجية على بنية الجهاز الهدف المطابقة لوحدة IoT Edge. لمزيد من المعلومات حول بنيات الجهاز الهدف، راجع تطوير وحدات Azure IoT Edge النمطية باستخدام Visual Studio Code.

Windows

لم نعد ندعم حاويات Windows. IoT Edge ل Linux على Windows هو الطريقة الموصى بها لتشغيل IoT Edge على أجهزة Windows.

أمان الوحدة النمطية

يجب عليك تطوير الوحدات النمطية الخاصة بك مع وضع الأمان في الاعتبار. لمعرفة المزيد حول تأمين الوحدات النمطية الخاصة بك، راجع أمان Docker.

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

السماح بأذونات Docker المرتفعة

في ملف التكوين على جهاز IoT Edge، هناك معلمة تسمى allow_elevated_docker_permissions. عند التعيين إلى true، تسمح هذه العلامة --privileged بالعلامة وأي قدرات إضافية تقوم بتعريفها في CapAdd حقل Docker HostConfig في خيارات إنشاء الحاوية.

إشعار

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

تمكين CAP_CHOWN CAP_SETUID

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

إذا كنت بحاجة إلى هذه الإمكانات، يمكنك إعادة تمكينها يدويا باستخدام CapADD في خيارات إنشاء الحاوية.

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

إعداد بيئة التطوير والاختبار ل IoT Edge

تطوير وحدات Azure IoT Edge النمطية باستخدام Visual Studio Code

تصحيح أخطاء وحدات Azure IoT Edge النمطية باستخدام Visual Studio Code

فهم واستخدام Azure IoT Hub SDKs