مشاركة عبر


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

ينطبق على:IoT Edge 1.5 علامة صحية IoT Edge 1.5

هام

IoT Edge 1.5 LTS هو الإصدار المدعوم release. وصل IoT Edge 1.4 LTS إلى نهاية صلاحيته في 12 نوفمبر 2024. إذا كنت تستخدم إصدارا أقدم، راجع Update IoT Edge.

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

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

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

تغليف برنامجك كوحدة IoT Edge

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

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

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

الاتصال بمركز IoT Edge من وحدة

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

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

IoT Hub primitives

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

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

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

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

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

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

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

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

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

إشعار

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

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

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

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

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

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

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

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

Linux

لجميع اللغات في الجدول التالي، يدعم IoT Edge تطوير AMD64 ومعظم حاويات لينكس ARM64. كما يدعم حاويات ديبيان 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

إشعار

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

Windows

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

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

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

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

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

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

إشعار

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

تمكين CAP_CHOWN CAP_SETUID

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

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

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