ترتيب أحداث اتصال الجهاز من 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 الخاص بك. أنشئ واحدًا باستخدام CLI أو مدخل Azure.
إنشاء تطبيق منطق
دعونا ننشئ تطبيقا منطقيا ونضيف مشغل Event Grid الذي يراقب مجموعة الموارد لجهازك الظاهري.
إنشاء مورد logic app
في مدخل Azure، حدد +إنشاء مورد، وحدد التكامل ثم تطبيق منطقي.
أكمل النموذج لإنشاء Logic App جديد يتضمن:
اشتراكك
مجموعة الموارد الخاصة بك (أو إنشاء مجموعة جديدة)
اسم Logic App فريد في اشتراكك
منطقة مركز IoT الخاص بك
لا لتمكين تحليلات السجل
نوع خطة الاستهلاك
ملاحظة
نوع خطة الاستهلاك هو الخيار الذي يمكن مصمم تطبيق المنطق في واجهة المستخدم. إذا اخترت Standard (الافتراضي)، فيجب عليك إنشاء سير عمل جديد حتى يصبح مصمم تطبيق Logic متوفرا.
حدد 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. يتم إنشاء هذا الشرط في مصمم تطبيق Logic.
حدد + خطوة جديدة، ثم علامة التبويب مضمنة ، ثم ابحث عن عنصر التحكم المسمى 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
قبل أن تغادر Logic Apps Designer، انسخ عنوان URL الذي تنصت إليه تطبيقاتك المنطقية للحصول على مشغل. يمكنك استخدام URL هذا لتكوين Event Grid.
قم بتوسيع مربع تكوين المشغل عند تلقي طلب HTTP عن طريق تحديده.
انسخ قيمة URL HTTP POST عن طريق تحديد زر النسخ المجاور له.
احفظ عنوان URL هذا بحيث يمكنك استخدامه في القسم التالي.
تكوين الاشتراك لأحداث مركز IoT
في هذا القسم، تقوم بتكوين مركز IoT الخاص بك لنشر الأحداث بينما تحدث.
في مدخل Azure، انتقل إلى مركز IoT.
حدد Events.
حدد + اشتراك حدث.
املأ تفاصيل اشتراك الحدث: قم بتوفير اسم وصفي وحدد مخطط شبكة الأحداثكمخطط الحدث.
إنشاء اسم موضوع النظام لمورد مركز IoT الخاص بك.
املأ حقول أنواع الأحداث. في القائمة المنسدلة، حدد الجهاز متصل وتم قطع اتصال الجهاز فقط من القائمة. انقر فوق أي مكان آخر على الشاشة لإغلاق القائمة وحفظ ما حددته.
بالنسبة إلى تفاصيل نقطة النهاية، حدد نوع نقطة النهاية كـ إخطار على الويب وانقر فوق "تحديد نقطة النهاية" والصِق عنوان URL الذي نسخته من تطبيقك المنطقي وأكّد التحديد.
يجب أن يبدو النموذج الآن مشابهاً للمثال التالي:
حدد إنشاء لحفظ اشتراك الحدث.
هام
انتظر بضع دقائق حتى تتم معالجة الحدث قبل تشغيل جهازك. في أي وقت يتم إنشاء خدمات Azure أو تغييرها، قد يؤدي بدء الخطوة التالية في البنية الأساسية لبرنامج ربط العمليات التجارية الخاصة بك في وقت قريب جدا إلى أخطاء غير ضرورية. على سبيل المثال، إذا لم يكن مركز IoT في حالة نشطة، فلن يكون جاهزا لتلقي الأحداث. تحقق من صفحة نظرة عامة على مركز IoT لمعرفة ما إذا كان مركز IoT في حالة نشطة أم لا. إذا لم يكن الأمر كذلك، فسترى تحذيرا في أعلى الصفحة.
تشغيل الجهاز ومراقبة الأحداث
الآن وقد أعددت اشتراك الحدث الخاص بك، دعنا نختبره عن طريق توصيل جهاز.
تسجيل جهاز في مركز IoT
من لوحة وصل IoT خاصتك، حدد Devices.
حدد + إضافة جهاز في أعلى الجزء.
بالنسبة لمعرف الجهاز، أدخل
Demo-Device-1
.حدد "Save".
انقر فوق الجهاز مرة أخرى؛ الآن ستتم تعبئة سلاسل الاتصال والمفاتيح. انسخ سلسلة الاتصال الأساسية واحفظها لاستخدامها لاحقا.
بدء تشغيل محاكي 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 الخاص بك.
في شفرة نظرة عامة، حدد حذف.
حتى إذا احتفظت بمركز IoT الخاص بك، فقد ترغب في حذف اشتراك الحدث الذي أنشأته. في مركز IoT الخاص بك، حدد شبكة الأحداث.
حدد اشتراك الحدث الذي تريد إزالته، ثم حدد حذف.
Cosmos DB
لإزالة حساب Azure Cosmos DB من مدخل Microsoft Azure، انتقل إلى المورد وحدد حذف الحساب من شريط القوائم العلوي. راجع الإرشادات المفصلة لـ حذف حساب قاعدة بيانات Azure Cosmos.
الخطوات التالية
التعرّف على المزيد حول التفاعل مع أحداث مركز IoT باستخدام شبكة الأحداث لتشغيل الإجراءات
التعرّف على المهام الأخرى التي يمكنك تنفيذها باستخدام شبكة الأحداث
التعرّف على كيفية استخدام شبكة الأحداث وAzure Monitor لـ مراقبة قدرة الجهاز على الاتصال بمركز IoT وتشخيصه واستكشاف الأخطاء الموجودة به وإصلاحها