استخدام توجيه رسائل IoT Hub لإرسال رسائل من جهاز إلى سحابة إلى خدمات Azure

يُمكّنك توجيه الرسائل من إرسال الرسائل من أجهزتك إلى الخدمات السحابية بطريقة آلية وقابلة للتوسع وموثوقة. يمكن استخدام توجيه الرسائل من أجل:

  • إرسال رسائل وأحداث بيانات تتبع الاستخدام للجهاز إلى نقطة النهاية المضمنة ونقاط النهاية المخصصة. تتضمن الأحداث التي يمكن توجيهها أحداث دورة حياة الجهاز وأحداث تغيير الجهاز المزدوج وأحداث تغيير التوأم الرقمي وأحداث حالة اتصال الجهاز.

  • تصفية البيانات قبل توجيهها عن طريق تطبيق استعلامات غنية. يسمح لك توجيه الرسائل بالاستعلام عن خصائص الرسالة ونص الرسالة بالإضافة إلى علامات مستند معلومات حالة الجهاز وخصائص مستند معلومات حالة الجهاز. لمزيد من المعلومات، راجع الاستعلامات في توجيه الرسائل.

يحدد IoT Hub تنسيقاً شائعاً لجميع الرسائل من جهاز إلى شبكة سحابية للتشغيل البيني عبر البروتوكولات. لمزيد من المعلومات، راجع إنشاء رسائل IoT Hub والاطلاع عليها.

إشعار

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

توجيه نقاط النهاية

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

يدعم IoT Hub حاليا نقاط النهاية التالية لتوجيه الرسائل:

  • نقطة النهاية المضمنة
  • حاويات التخزين
  • قوائم انتظار ناقل خدمة Microsoft Azure
  • مواضيع ناقل الخدمة
  • مراكز الأحداث
  • Cosmos DB

لمزيد من المعلومات حول كل نقطة من نقاط النهاية هذه، راجع نقاط نهاية IoT Hub.

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

يحتاج IoT Hub إلى إذن وصول الإضافة والحذف إلى نقاط نهاية الخدمة هذه حتى يعمل توجيه الرسائل. إذا قمت بتكوين نقاط النهاية الخاصة بك من خلال مدخل Azure، تتم إضافة الأذونات الضرورية لك. إذا قمت بتكوين نقاط النهاية باستخدام PowerShell أو Azure CLI، فستحتاج إلى توفير إذن الوصول للكتابة.

لمعرفة كيفية إنشاء نقاط النهاية، راجع المقالات التالية:

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

إذا كانت نقطة النهاية المخصصة تحتوي على تكوينات جدار الحماية، فقم بالتفكير في استخدام استثناء الطرف الأول الموثوق به من Microsoft.

التوجيه إلى نقطة نهاية في اشتراك آخر

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

لمزيد من المعلومات، راجع اتصال الخروج من IoT Hub إلى موارد Azure الأخرى.

توجيه الاستعلامات

يوفر توجيه رسائل IoT Hub إمكانية الاستعلام لتصفية البيانات قبل توجيهها إلى نقاط النهاية. يحتوي كل استعلام توجيه تقوم بتكوينه على الخصائص التالية:

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

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

لمزيد من المعلومات، راجع بناء جملة استعلام توجيه رسالة IoT Hub.

قراءة البيانات التي تم توجيهها

استخدم المقالات التالية لمعرفة كيفية قراءة الرسائل من نقطة نهاية.

مسار احتياطي

يرسل المسار الاحتياطي جميع الرسائل التي لا تفي بشروط الاستعلام على أي من المسارات الموجودة إلى نقطة النهاية المضمنة (الرسائل/الأحداث)، المتوافقة مع مراكز الأحداث. إذا تم تمكين توجيه الرسائل، يمكنك تمكين إمكانية التوجيه الاحتياطي. بمجرد إنشاء أي مسار، تتوقف البيانات عن التدفق إلى نقطة النهاية المضمنة، ما لم يتم إنشاء مسار إلى نقطة النهاية هذه. إذا لم تكن هناك مسارات إلى نقطة النهاية المضمنة وتم تمكين مسار احتياطي، فسيتم إرسال الرسائل التي لا تتطابق مع أي شروط استعلام على المسارات فقط إلى نقطة النهاية المضمنة. حتى إذا تم حذف جميع المسارات الموجودة، يجب تمكين إمكانية التوجيه الاحتياطي لتلقي جميع البيانات في نقطة النهاية المضمنة.

يمكنك تمكين أو تعطيل المسار الاحتياطي في مدخل Microsoft Azure على شفرة توجيه الرسائل . يمكنك أيضا استخدام Azure Resource Manager ل FallbackRouteProperties لاستخدام نقطة نهاية مخصصة للمسار الاحتياطي.

أحداث غير بيانات تتبع الاستخدام

بالإضافة إلى بيانات تتبع الاستخدام للجهاز، يتيح توجيه الرسائل أيضا إرسال أحداث غير بيانات تتبع الاستخدام، بما في ذلك:

  • أحداث تغيير الجهاز المزدوج
  • أحداث دورة حياة الجهاز
  • أحداث دورة حياة وظيفة الجهاز
  • أحداث التغيير المزدوج الرقمية
  • أحداث حالة اتصال الجهاز

على سبيل المثال، إذا تم إنشاء مسار مع تعيين مصدر البيانات إلى Device Twin Change Events، يرسل IoT Hub رسائل إلى نقطة النهاية التي تحتوي على التغيير في الجهاز المزدوج. وبالمثل، إذا تم إنشاء مسار مع تعيين مصدر البيانات إلى أحداث دورة حياة الجهاز، يرسل IoT Hub رسالة تشير إلى ما إذا كان الجهاز أو الوحدة النمطية قد تم حذفها أو إنشاؤها. لمزيد من المعلومات بشأن أحداث دورة حياة الجهاز، راجع إشعارات دورة حياة الجهاز والوحدة .

عند استخدام Azure IoT أجهزة التوصيل و التشغيل، يمكن للمطور إنشاء مسارات مع تعيين مصدر البيانات إلى Digital Twin Change Events ويرسل IoT Hub رسائل كلما تم تعيين خاصية Digital Twin أو تغييرها، أو استبدال التوأم الرقمي، أو عند حدوث حدث تغيير لتوأم الجهاز الأساسي. وأخيرا، إذا تم إنشاء مسار مع تعيين مصدر البيانات إلى Device الاتصال ion State Events، يرسل IoT Hub رسالة تشير إلى ما إذا كان الجهاز متصلا أو غير متصل.

يتكامل IoT Hub أيضًا مع Azure Event Grid لنشر أحداث الجهاز لدعم عمليات التكامل في الوقت الفعلي وأتمتة مهام سير العمل بناءً على هذه الأحداث. راجع الاختلافات الرئيسية بين توجيه الرسائل وشبكة الأحداث لمعرفة أيهما يعمل بشكل أفضل مع السيناريو الخاص بك.

القيود الخاصة بأحداث حالة اتصال الجهاز

تتوفر أحداث حالة اتصال الجهاز للأجهزة المتصلة باستخدام إما بروتوكول MQTT أو AMQP، أو باستخدام أي من هذين البروتوكولين عبر WebSockets. الطلبات التي يتم إجراؤها باستخدام HTTPS فقط لن تؤدي إلى تشغيل إشعارات حالة اتصال الجهاز. لكي يبدأ IoT Hub في إرسال أحداث حالة اتصال الجهاز، بعد فتح اتصال، يجب على الجهاز الاتصال بعملية استلام رسالة من مجموعة النظراء إلى جهاز أو قياس الإرسال عن بُعد من جهاز إلى مجموعة النظراء عملية. خارج حزم Azure IoT SDK، في MQTT، تعادل هذه العمليات عمليات الاشتراك أو النشر على مواضيع المراسلة المناسبة. عبر AMQP، تعادل هذه العمليات إرفاق رسالة أو نقلها على مسارات الارتباط المناسبة. لمزيد من المعلومات، راجع المقالات التالية:

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

مسارات الاختبار

عند إنشاء توجيه جديد أو تحرير توجيه موجود، يجب اختبار استعلام التوجيه مع رسالة عينة. يمكنك اختبار توجيهات فردية أو اختبار كافة التوجيهات في وقت واحد ولا يتم توجيه أية رسائل إلى نقاط النهاية أثناء الاختبار. يمكن استخدام مدخل Azure، وAzure Resource Manager، وAzure PowerShell، وAzure CLI للاختبار. تساعد النتائج في تحديد ما إذا كانت رسالة العينة متطابقة أو غير متطابقة مع الاستعلام، أو إذا تعذر تشغيل الاختبار لأن نموذج الرسالة أو بناء جملة الاستعلام غير صحيح. لمعرفة المزيد، راجع اختبار المسار واختبار جميع المسارات.

زمن الانتقال

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

في معظم الحالات، يكون متوسط الزيادة في زمن الانتقال أقل من 500 مللي ثانية. ومع ذلك، يمكن أن يختلف وقت الاستجابة الذي تواجهه ويمكن أن يكون أعلى اعتمادًا على مستوى مركز IoT الخاص بك وبنية الحل الخاص بك. يمكنك مراقبة زمن الانتقال باستخدام التوجيه: زمن انتقال الرسائل للرسائل/الأحداث أو d2c.endpoints.latency.builtIn.events مقاييس IoT Hub. لا يؤثر إنشاء أي مسار أو حذفه بعد المسار الأول على زمن الانتقال من طرف إلى طرف.

المراقبة واستكشاف الأخطاء وإصلاحها

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

يمكنك استخدام REST API Get Endpoint Health للحصول على الحالة الصحية لنقاط النهاية.

قم باستخدام دليل استكشاف الأخطاء وإصلاحها للتوجيه لمزيد من التفاصيل والدعم لاستكشاف الأخطاء وإصلاحها.