فهم سجل الهوية في مركز إنترنت الأشياء الخاص بك

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

معرف الجهاز أو الوحدة النمطية المخزن في سجل الهوية حساس لحالة الأحرف.

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

استخدم سجل الهوية عندما تحتاج إلى ما يلي:

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

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

يكشف سجل هوية IoT Hub عن العمليات التالية:

  • إنشاء هوية الجهاز أو الوحدة النمطية
  • تحديث هوية الجهاز أو الوحدة النمطية
  • استرداد هوية الجهاز أو الوحدة النمطية حسب المعرف
  • حذف هوية الجهاز أو الوحدة النمطية
  • قائمة ما يصل إلى 1000 هوية
  • تصدير هويات الأجهزة إلى وحدة تخزين Azure blob
  • استيراد هويات الأجهزة من وحدة تخزين Azure blob

يمكن لجميع هذه العمليات استخدام تزامن متفائل ، كما هو محدد في RFC7232.

هام

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

سجل هوية IoT Hub:

  • لا يحتوي على أي بيانات تعريف للتطبيق.

هام

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

تعطيل الأجهزة

يمكنك تعطيل الأجهزة عن طريق تحديث خاصية حالة الهوية في سجل الهوية. عادةً ما تستخدم هذه الخاصية في سيناريوهين:

  • أثناء عملية تنسيق التزويد. لمزيد من المعلومات، راجع إدارة حسابات الأجهزة.

  • إذا كنت تعتقد، لأي سبب من الأسباب، أن جهازا ما مخترق أو أصبح غير مصرح به.

هذه الميزة غير متوفرة للوحدات النمطية.

استيراد هويات الأجهزة وتصديرها

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

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

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

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

توفير الأجهزة

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

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

رسالة كشف أخطاء الاتصال بالجهاز

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

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

يمكن أن يتضمن التنفيذ الأكثر تعقيدا المعلومات من Azure MonitorوAzure Resource Health لتحديد الأجهزة التي تحاول الاتصال أو الاتصال ولكنها تفشل. لمعرفة المزيد حول استخدام هذه الخدمات مع IoT Hub، راجع مراقبة IoT Hub والتحقق من صحة موارد IoT Hub. لمزيد من المعلومات المحددة حول استخدام Azure Monitor أو Event Grid لمراقبة اتصال الجهاز، راجع مراقبة اتصال الجهاز وتشخيصه واستكشاف الأخطاء وإصلاحها. عند تنفيذ نمط ضربات القلب، تأكد من التحقق من حصص IoT Hub والاختناقات.

ملاحظة

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

إشعارات دورة حياة الجهاز والوحدة النمطية

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

الخصائص: خصائص نظام الرسائل مسبوقة بالرمز $ .

رسالة إشعار الجهاز:

الاسم القيمة
$content-type تطبيق/json
$iothub-enqueuedtime الوقت الذي تم فيه إرسال الإشعار
مصدر رسالة مركز ioT$ أحداث دورة حياة الجهاز
ترميز المحتوى$ utf-8
نوع العملية createDeviceIdentity أو deleteDeviceIdentity
hubName اسم مركز IoT
معرف الجهاز معرّف الجهاز
الطابع الزمني للعملية الطابع الزمني ISO8601 للعملية
مخطط رسالة مركز IoT إشعار دورة حياة الجهاز

النص الأساسي: هذا المقطع بتنسيق JSON ويمثل الهوية المزدوجة للجهاز الذي تم إنشاؤه. على سبيل المثال،

{
    "deviceId":"11576-ailn-test-0-67333793211",
    "etag":"AAAAAAAAAAE=",
    "properties": {
        "desired": {
            "$metadata": {
                "$lastUpdated": "2016-02-30T16:24:48.789Z"
            },
            "$version": 1
        },
        "reported": {
            "$metadata": {
                "$lastUpdated": "2016-02-30T16:24:48.789Z"
            },
            "$version": 1
        }
    }
}

رسالة إشعار الوحدة النمطية:

الاسم القيمة
$content-type تطبيق/json
$iothub-enqueuedtime الوقت الذي تم فيه إرسال الإشعار
مصدر رسالة مركز ioT$ أحداث دورة حياة الوحدة النمطية
ترميز المحتوى$ utf-8
نوع العملية createModuleIdentity or deleteModuleIdentity
hubName اسم مركز IoT
معرّف الوحدة النمطية معرّف الوحدة النمطية
الطابع الزمني للعملية الطابع الزمني ISO8601 للعملية
مخطط رسالة مركز IoT إشعار دورة حياة الوحدة النمطية

النص الأساسي: هذا المقطع بتنسيق JSON ويمثل الهوية المزدوجة للوحدة النمطية التي تم إنشاؤها. على سبيل المثال،

{
    "deviceId":"11576-ailn-test-0-67333793211",
    "moduleId":"tempSensor",
    "etag":"AAAAAAAAAAE=",
    "properties": {
        "desired": {
            "$metadata": {
                "$lastUpdated": "2016-02-30T16:24:48.789Z"
            },
            "$version": 1
        },
        "reported": {
            "$metadata": {
                "$lastUpdated": "2016-02-30T16:24:48.789Z"
            },
            "$version": 1
        }
    }
}

خصائص معرّف الجهاز

يتم تمثيل معرّفات الجهاز كمستندات بتنسيق JSON مع الخصائص التالية:

الخاصية الخيارات الوصف
معرف الجهاز مطلوب، للقراءة فقط عند إجراء تحديثات سلسلة حساسة لحالة الأحرف (يصل طولها إلى 128 حرفا) من الأحرف الأبجدية الرقمية ASCII 7 بت بالإضافة إلى بعض الأحرف الخاصة: - . + % _ # * ? ! ( ) , : = @ $ '.
معرّف الجيل مطلوب، للقراءة فقط سلسلة تحسس حالة الأحرف مُنشأه بواسطة مركز IoT، يصل طولها إلى 128 حرفًا. تُستخدم هذه القيمة لتمييز الأجهزة بنفس معرّف الجهاز، عند حذفها وإعادة إنشائها.
etag مطلوب، للقراءة فقط سلسلة تمثل ETag ضعيفة لهوية الجهاز ، وفقا ل RFC7232.
مصادقة اختياري عنصر مُرَكب يحتوي على معلومات المصادقة ومواد الأمان. لمزيد من المعلومات، راجع آلية المصادقة في وثائق واجهة برمجة تطبيقات REST.
الإمكانات اختياري مجموعة قدرات الجهاز. على سبيل المثال ، ما إذا كان الجهاز جهازا حافيا أم لا. لمزيد من المعلومات، راجع إمكانات الجهاز في وثائق واجهة برمجة تطبيقات REST.
deviceScope اختياري نطاق الجهاز. في الأجهزة الطرفية ، يتم إنشاؤها تلقائيا وغير قابلة للتغيير. مهملة في الأجهزة غير الحافة. ومع ذلك، في الأجهزة الفرعية (الورقة)، قم بتعيين هذه الخاصية إلى نفس قيمة الخاصية parentScopes ( deviceScope للجهاز الأصل) للتوافق مع الإصدارات السابقة من واجهة برمجة التطبيقات. لمزيد من المعلومات، راجع IoT Edge كبوابة: العلاقات بين الوالدين والأطفال.
الوالدينالنطاقات اختياري نطاق الأصل المباشر للجهاز التابع (قيمة خاصية deviceScope للجهاز الأصل). في الأجهزة الطرفية، تكون القيمة فارغة إذا لم يكن للجهاز أحد الوالدين. في الأجهزة غير الطرفية، لا تكون الخاصية موجودة إذا لم يكن للجهاز أحد الوالدين. لمزيد من المعلومات، راجع IoT Edge كبوابة: العلاقات بين الوالدين والأطفال.
الحالة مطلوب مؤشر وصول. يمكن تمكينه أو تشغيله. إذا تم تمكينه، فسيُسمح للجهاز بالاتصال. إذا تم تعطيله، فلا يمكن لهذا الجهاز الوصول إلى أي نقطة نهاية مواجهة للجهاز.
سبب الحالة اختياري سلسلة من 128 حرفًا تخزن سبب حالة معرّف الجهاز. جميع أحرف UTF-8 مسموح بها.
وقت تحديث الحالة للقراءة فقط مؤشر زمني يوضح تاريخ ووقت آخر تحديث للحالة.
حالة الاتصال للقراءة فقط حقل يشير إلى حالة الاتصال: إما متصل أو غير متصل. يمثل هذا الحقل طريقة عرض مركز IoT لحالة اتصال الجهاز. ملاحظة مهمة: يجب استخدام هذا الحقل لأغراض التطوير/تصحيح الأخطاء فقط. يتم تحديث حالة الاتصال فقط للأجهزة التي تستخدم MQTT أو AMQP. ويستند أيضًا إلى أدوات اختبار الاتصال على مستوى البروتوكول (أدوات اختبار الاتصال MQTT أو AMQP)، ويمكن أن يكون لها حد أقصى للتأخير 5 دقائق فقط. لهذه الأسباب، يمكن أن تكون هناك إيجابيات خاطئة، مثل الأجهزة التي تم الإبلاغ عنها على أنها متصلة ولكن تم قطع اتصالها.
وقت تحديث حالة الاتصال للقراءة فقط مؤشر زمني، يوضح التاريخ وآخر مرة تم فيها تحديث حالة الاتصال.
وقت آخر نشاط للقراءة فقط مؤشر زمني، يظهر التاريخ وآخر مرة كان الجهاز فيها متصلاً أو استلم رسالة أو أرسل رسالة. هذه الخاصية متسقة في نهاية المطاف ، ولكن يمكن تأخيرها لمدة تصل إلى 5 إلى 10 دقائق. لهذا السبب ، لا ينبغي استخدامه في سيناريوهات الإنتاج.

ملاحظة

يمكن أن تمثل حالة الاتصال فقط عرض مركز IoT لحالة الاتصال. قد تتأخر تحديثات هذه الحالة وفقًا لشروط شروط الشبكة وتكويناتها.

ملاحظة

لا تدعم مجموعات SDK للجهاز حاليا استخدام + الأحرف والأحرف # الموجودة في deviceId.

خصائص معرّف الوحدة النمطية

يتم تمثيل مُعرفات الوحدة النمطية كمستندات بتنسيق JSON مع الخصائص التالية:

الخاصية الخيارات الوصف
معرف الجهاز مطلوب، للقراءة فقط عند إجراء تحديثات سلسلة حساسة لحالة الأحرف (يصل طولها إلى 128 حرفا) من الأحرف الأبجدية الرقمية ASCII 7 بت بالإضافة إلى بعض الأحرف الخاصة: - . + % _ # * ? ! ( ) , : = @ $ '.
معرّف الوحدة النمطية مطلوب، للقراءة فقط عند إجراء تحديثات سلسلة حساسة لحالة الأحرف (يصل طولها إلى 128 حرفا) من الأحرف الأبجدية الرقمية ASCII 7 بت بالإضافة إلى بعض الأحرف الخاصة: - . + % _ # * ? ! ( ) , : = @ $ '.
معرّف الجيل مطلوب، للقراءة فقط سلسلة تحسس حالة الأحرف مُنشأه بواسطة مركز IoT، يصل طولها إلى 128 حرفًا. تُستخدم هذه القيمة لتمييز الأجهزة بنفس معرّف الجهاز، عند حذفها وإعادة إنشائها.
etag مطلوب، للقراءة فقط سلسلة تمثل ETag ضعيفة لهوية الجهاز ، وفقا ل RFC7232.
مصادقة اختياري عنصر مُرَكب يحتوي على معلومات المصادقة ومواد الأمان. لمزيد من المعلومات، راجع آلية المصادقة في وثائق واجهة برمجة تطبيقات REST.
managedBy اختياري يحدد من يدير هذه الوحدة. على سبيل المثال ، هذه القيمة هي "IotEdge" إذا كان وقت تشغيل الحافة يمتلك هذه الوحدة.
cloudToDeviceMessageCount للقراءة فقط عدد الرسائل من سحابة إلى وحدة نمطية الموجودة حاليا في قائمة الانتظار ليتم إرسالها إلى الوحدة النمطية.
حالة الاتصال للقراءة فقط حقل يشير إلى حالة الاتصال: إما متصل أو غير متصل. يمثل هذا الحقل طريقة عرض مركز IoT لحالة اتصال الجهاز. ملاحظة مهمة: يجب استخدام هذا الحقل لأغراض التطوير/تصحيح الأخطاء فقط. يتم تحديث حالة الاتصال فقط للأجهزة التي تستخدم MQTT أو AMQP. ويستند أيضًا إلى أدوات اختبار الاتصال على مستوى البروتوكول (أدوات اختبار الاتصال MQTT أو AMQP)، ويمكن أن يكون لها حد أقصى للتأخير 5 دقائق فقط. لهذه الأسباب، يمكن أن تكون هناك إيجابيات خاطئة، مثل الأجهزة التي تم الإبلاغ عنها على أنها متصلة ولكن تم قطع اتصالها.
وقت تحديث حالة الاتصال للقراءة فقط مؤشر زمني، يوضح التاريخ وآخر مرة تم فيها تحديث حالة الاتصال.
وقت آخر نشاط للقراءة فقط مؤشر زمني، يظهر التاريخ وآخر مرة كان الجهاز فيها متصلاً أو استلم رسالة أو أرسل رسالة.

ملاحظة

لا تدعم مجموعات SDK للجهاز حاليا استخدام + الأحرف والأحرف الموجودة في deviceIdوmoduleId#.

مواد مرجعية إضافية

تتضمن الموضوعات المرجعية الأخرى في دليل مطوري IoT Hub ما يلي:

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

الآن بعد أن تعلمت كيفية استخدام سجل هوية IoT Hub ، قد تكون مهتما بمواضيع دليل مطوري IoT Hub التالية:

لتجربة بعض المفاهيم الموضحة في هذه المقالة، راجع البرنامج التعليمي التالي IoT Hub:

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