ترتيب أحداث اتصال الجهاز من Azure IoT Hub باستخدام Azure Cosmos DB
تساعدك Azure Event Grid على إنشاء تطبيقات مستندة إلى الحدث ودمج أحداث IoT بسهولة في حلول عملك. ترشدك هذه المقالة خلال إعداد باستخدام Cosmos DB وLogic App وأحداث IoT Hub وRaspberry Pi محاكاة لجمع أحداث الاتصال وقطع الاتصال الخاصة بالجهاز وتخزينها.
من لحظة تشغيل جهازك، يتم تنشيط ترتيب العمليات:
يتم بدء تشغيل جهاز Pi، باستخدام مفتاح جهاز مركز IoT، ثم إيقافه
يلتقط حدث IoT Hub نشاط الجهاز، ثم يرسل طلب HTTP إلى Logic App
يعالج Logic App طلب HTTP استنادا إلى شرط قمت بتعيينه
يسجل Logic App أحداث الاتصال أو قطع الاتصال في مستند جديد في Cosmos DB
المتطلبات الأساسية
حساب Azure Cosmos DB نشط ل NoSQL. إذا لم تكن قد أنشأت حساباً بعد، فراجع إنشاء حساب قاعدة بيانات للاطلاع على معاينة.
مجموعة في قاعدة بياناتك. راجع إضافة مجموعة للاطلاع على معاينة. عند إنشاء مجموعتك، استخدم
/id
لمفتاح القسم.اشتراك Azure. إذا لم يكن لديك اشتراك Azure، فأنشئ اشتراكاً مجاناً قبل البدء.
مركز IoT في اشتِراك Azure الخاص بك. إذا لم تكن لديك مركز بعد، فإنه يمكنك اتباع الخطوات الواردة في إنشاء مركز IoT.
إنشاء تطبيق منطقي
دعونا ننشئ تطبيقا منطقيا ونضيف مشغل Event Grid الذي يراقب مجموعة الموارد لجهازك الظاهري.
إنشاء مورد تطبيق منطقي
في مدخل Azure، حدد +إنشاء مورد، وحدد التكامل ثم تطبيق منطقي.
أكمل النموذج لإنشاء Logic App جديد يتضمن:
اشتراكك
مجموعة الموارد الخاصة بك (أو إنشاء مجموعة جديدة)
اسم Logic App فريد في اشتراكك
منطقة مركز IoT الخاص بك
لا لتمكين تحليلات السجل
نوع خطة الاستهلاك
إشعار
نوع خطة الاستهلاك هو الخيار الذي يمكن مصمم تطبيق المنطق في واجهة المستخدم. إذا اخترت قياسي (الافتراضي)، فيجب عليك إنشاء سير عمل جديد حتى يصبح مصمم تطبيق المنطق متوفرا.
حدد Review + Create لمراجعة التكوين الخاص بك، ثم حدد Create لإنشاء تطبيق المنطق.
لقد أنشأت الآن مورد Azure لتطبيقك المنطقي. بعد أن يوزع Azure تطبيقك المنطقي، حدد انتقال إلى المورد. يوضح لك مصمم تطبيق المنطق قوالب للأنماط الشائعة حتى تتمكن من البدء بشكل أسرع.
في مصمم Logic app، قم بالتمرير حتى ترى قسم Templates ، ثم اختر Blank Logic App بحيث يمكنك إنشاء تطبيق المنطق الخاص بك من البداية.
اختر مشغلاً
المشغل عبارة عن حدث محدد يبدأ تطبيقك المنطقي. لهذا البرنامج التعليمي، المشغل الذي يقوم بتعيين سير العمل يتلقى طلبًا عبر HTTP.
في شريط البحث الخاص بالموصلات والمشغلات، اكتب HTTP ثم اضغط مفتاح Enter.
حدد الطلب عند تلقي طلب HTTP كمشغل.
حدد استخدام حمولة عينة لإنشاء مخطط.
الصق نموذج التعليمات البرمجية JSON التالي في مربع النص، ثم حدد تم.
يتم استخدام JSON هذا فقط كقالب، لذلك لا تكون القيم الدقيقة مهمة.
[{ "id": "fbfd8ee1-cf78-74c6-dbcf-e1c58638ccbd", "topic": "/SUBSCRIPTIONS/DEMO5CDD-8DAB-4CF4-9B2F-C22E8A755472/RESOURCEGROUPS/EGTESTRG/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/MYIOTHUB", "subject": "devices/Demo-Device-1", "eventType": "Microsoft.Devices.DeviceConnected", "eventTime": "2018-07-03T23:20:11.6921933+00:00", "data": { "deviceConnectionStateEventInfo": { "sequenceNumber": "000000000000000001D4132452F67CE200000002000000000000000000000001" }, "hubName": "MYIOTHUB", "deviceId": "48e44e11-1437-4907-83b1-4a8d7e89859e", "moduleId": "" }, "dataVersion": "1", "metadataVersion": "1" }]
إنشاء شرط
تساعد الشروط في تشغيل إجراءات محددة بعد تمرير هذا الشرط المحدد. بالنسبة لهذه المقالة، الشرط هو التحقق مما إذا كان eventType متصلا أو غير متصل بالجهاز. الإجراء الذي يتم تنفيذه عندما يكون eventType صحيحا هو إنشاء مستند في Azure Cosmos DB. يتم إنشاء هذا الشرط في مصمم تطبيق المنطق.
حدد + New step، ثم علامة التبويب Built-in ، ثم ابحث عن عنصر التحكم المسمى Condition وحدده.
في حالتك، قم بتغيير و إلى أو، لأننا نريد التقاط أحداث الاتصال أو أحداث قطع الاتصال في تحليل واحد.
حدد داخل المربع اختيار قيمة ويظهر نافذة منبثقة تعرض المحتوى الديناميكي — الحقول التي يمكن تحديدها.
اختر eventType. يتم إغلاق النافذة المنبثقة وترى يتم وضع النص الأساسي في تحديد إخراج من الخطوات السابقة، تلقائيا. حدد Condition لإعادة فتح العبارة الشرطية.
الاحتفاظ يساوي القيمة.
اكتب Microsoft.Devices.DeviceConnected كقيمة أخيرة لهذا الصف.
حدد + إضافة لإضافة صف آخر.
يشبه هذا الصف الثاني الصف الأول، باستثناء أننا نبحث عن أحداث قطع الاتصال.
استخدم eventType، يساوي، وMicrosoft.Devices.DeviceDisconnected لقيم الصف.
في مربع الحوار إذا كان صحيحاً، انقر فوق إضافة إجراء.
ابحث عن Cosmos DB وحدد Azure Cosmos DB — إنشاء مستند أو تحديثه (V3)
ترى لوحة إنشاء مستند أو تحديثه (V3 ). أدخل هذه القيم للحولات:
اسم حساب Azure Cosmos DB: {Add your account name}
معرّف قاعدة البيانات: ToDoList
معرّف المجموعة: Items
المستند: اختر
Current item
من قائمة معلمات المحتوى الديناميكيحفظ تطبيق المنطق الخاص بك.
نسخ عنوان URL HTTP
قبل أن تغادر مصمم تطبيقات المنطق، انسخ عنوان URL الذي تنصت إليه تطبيقاتك المنطقية للحصول على مشغّل. يمكنك استخدام URL هذا لتكوين Event Grid.
قم بتوسيع مربع تكوين المشغل عند تلقي طلب HTTP عن طريق تحديده.
انسخ قيمة URL HTTP POST عن طريق تحديد زر النسخ المجاور له.
احفظ عنوان URL هذا بحيث يمكنك استخدامه في القسم التالي.
تكوين الاشتراك لأحداث مركز IoT
في هذا القسم، تقوم بتكوين مركز IoT الخاص بك لنشر الأحداث بينما تحدث.
في مدخل Microsoft Azure توجه إلى مركز IoT.
حدد Events.
حدد + اشتراك حدث.
تعبئة تفاصيل اشتراك الحدث: قم بتوفير اسم وصفي وحدد مخطط شبكة الأحداث كمخطط الحدث.
إنشاء اسم موضوع النظام لمورد مركز IoT الخاص بك.
املأ حقول أنواع الأحداث. في القائمة المنسدلة، حدد الجهاز متصل وتم قطع اتصال الجهاز فقط من القائمة. انقر فوق أي مكان آخر على الشاشة لإغلاق القائمة وحفظ ما حددته.
بالنسبة إلى تفاصيل نقطة النهاية، حدد نوع نقطة النهاية كـ إخطار على الويب وانقر فوق "تحديد نقطة النهاية" والصِق عنوان URL الذي نسخته من تطبيقك المنطقي وأكّد التحديد.
يجب أن يبدو النموذج الآن مشابهاً للمثال التالي:
حدد Create لحفظ اشتراك الحدث.
هام
انتظر بضع دقائق حتى تتم معالجة الحدث قبل تشغيل جهازك. في أي وقت يتم إنشاء خدمات Azure أو تغييرها، قد يؤدي بدء الخطوة التالية في البنية الأساسية لبرنامج ربط العمليات التجارية الخاصة بك في وقت قريب جدا إلى أخطاء غير ضرورية. على سبيل المثال، إذا لم يكن مركز IoT في حالة نشطة، فلن يكون جاهزا لتلقي الأحداث. تحقق من صفحة نظرة عامة على مركز IoT لمعرفة ما إذا كان مركز IoT في حالة نشطة أم لا. إذا لم يكن الأمر كذلك، فسترى تحذيرا في أعلى الصفحة.
تشغيل الجهاز ومراقبة الأحداث
الآن وقد أعددت اشتراك الحدث الخاص بك، دعنا نختبره عن طريق توصيل جهاز.
تسجيل جهاز في مركز IoT
من لوحة وصل IoT خاصتك، حدد Devices.
حدد + إضافة جهاز في أعلى الجزء.
في Device ID، أدخل
Demo-Device-1
.حدد حفظ.
انقر فوق الجهاز مرة أخرى؛ الآن ستتم تعبئة سلاسل الاتصال والمفاتيح. انسخ سلسلة الاتصال الأساسية واحفظها لاستخدامها لاحقا.
بدء تشغيل محاكي Raspberry Pi
دعونا نستخدم محاكي Raspberry Pi على الويب لمحاكاة اتصال الجهاز.
تشغيل عينة تطبيق على محاكي Raspberry Pi على الويب
سيؤدي هذا التطبيق النموذجي إلى تشغيل حدث متصل بالجهاز.
في منطقة الترميز، استبدل العنصر النائب في السطر 15 بسلسلة اتصال جهاز مركز Azure IoT التي حفظتها في نهاية القسم السابق.
شغّل التطبيق عن طريق تحديد تشغيل.
يُفترض أن يظهر لك شيئاً مشابهاً للإخراج التالي ويعرض بيانات المستشعر والرسائل المُرسلة من مركز IoT الخاص بك.
يمكنك التحقق من صفحة نظرة عامة على Logic App للتحقق مما إذا كان المنطق الخاص بك يتم تشغيله. سيقول نجاح أو فشل. يتيح لك التحقق هنا معرفة حالة تطبيق المنطق الخاص بك إذا كانت هناك حاجة إلى استكشاف الأخطاء وإصلاحها. توقع تأخيرا من 15 إلى 30 ثانية من وقت تشغيل المشغل. إذا كنت بحاجة إلى استكشاف أخطاء تطبيق المنطق وإصلاحها، فاعرض مقالة استكشاف الأخطاء وإصلاحها هذه.
حدد إيقاف لإيقاف المحاكي، الذي يقوم بتشغيل حدث غير متصل بالجهاز. سيقوم هذا الحدث بتسجيل الدخول إلى صفحة نظرة عامة على Logic App، تماما مثل حدث الاتصال الذي تم تسجيله هناك.
لقد قمت الآن بتشغيل نموذج تطبيق لجمع أحداث الاتصال وقطع الاتصال لجهازك، والتي تنتقل إلى مركز IoT الخاص بك.
مراقبة الأحداث في Azure Cosmos DB
يمكنك مشاهدة نتائج تطبيق المنطق المنفذ في مستند Cosmos DB. يظهر المستند في مجموعة العناصر عند تحديث الصفحة. ينشئ كل حدث حالة اتصال مستندا جديدا تم تعيينه إلى فريد id
. تعرض الصورة التالية المستند الذي تم إنشاؤه عند بدء تشغيل الجهاز (متصل). يتم سرد نوع الحدث المتصل في إخراج JSON.
استخدام Azure CLI
بدلاً من استخدام مدخل Azure، يمكنك إنجاز خطوات مركز IoT باستخدام واجهة سطر الأوامر في Azure. للحصول على التفاصيل، راجع صفحات واجهة سطر الأوامر في Azure لـ إنشاء اشتراك حدث وإنشاء جهاز IoT.
تنظيف الموارد
استخدم هذا البرنامج التعليمي الموارد التي تتكبد رسومًا على اشتراك Azure. عند الانتهاء من تجربة البرنامج التعليمي واختبار النتائج، قم بتعطيل أو حذف الموارد التي لا تريد الاحتفاظ بها.
تطبيق المنطق
إذا لم ترغب في فقدان العمل على تطبيقك المنطقي، فعطّله بدلاً من حذفه.
انتقل إلى تطبيقك المنطقي.
في شفرة نظرة عامة، حدد حذف أو تعطيل.
يمكن أن يكون لكل اشتراك مركز IoT مجاني واحد فقط. إذا كنت قد أنشأت مركزاً مجانياً لهذا البرنامج التعليمي، فلن تحتاج إلى حذفه لمنع فرض رسوم.
مركز IoT أو شبكة الأحداث
انتقل إلى IoT Hub الخاص بك.
في شفرة نظرة عامة، حدد حذف.
حتى إذا احتفظت بمركز IoT الخاص بك، فقد ترغب في حذف اشتراك الحدث الذي أنشأته. في مركز IoT الخاص بك، حدد شبكة الأحداث.
حدد اشتراك الحدث الذي تريد إزالته، ثم حدد حذف.
Cosmos DB
لإزالة حساب Azure Cosmos DB من مدخل Microsoft Azure، انتقل إلى المورد وحدد Delete account من شريط القوائم العلوي. راجع الإرشادات المفصلة لـ حذف حساب قاعدة بيانات Azure Cosmos.
الخطوات التالية
التعرّف على المزيد حول التفاعل مع أحداث مركز IoT باستخدام شبكة الأحداث لتشغيل الإجراءات
التعرّف على المهام الأخرى التي يمكنك تنفيذها باستخدام شبكة الأحداث
التعرّف على كيفية استخدام شبكة الأحداث وAzure Monitor لـ مراقبة قدرة الجهاز على الاتصال بمركز IoT وتشخيصه واستكشاف الأخطاء الموجودة به وإصلاحها