التشغيل السريع: نشر رسائل MQTT والاشتراك فيها على مساحة اسم شبكة الأحداث باستخدام مدخل Microsoft Azure

في هذه المقالة، يمكنك استخدام مدخل Azure للقيام بالمهام التالية:

  1. إنشاء مساحة اسم Event Grid وتمكين وسيط MQTT
  2. إنشاء موارد فرعية مثل العملاء ومجموعات العملاء ومساحات المواضيع
  3. منح العملاء حق الوصول لنشر مساحات المواضيع والاشتراك فيها
  4. نشر الرسائل وتلقيها بين العملاء

المتطلبات الأساسية

  • إنشاء حساب Azure مجاني إذا لم يكن لديك اشتراك Azure.
  • اقرأ نظرة عامة على Event Grid قبل بدء هذا البرنامج التعليمي، إذا كنت جديدا على Azure Event Grid.
  • تأكد من أن المنفذ 8883 مفتوح في جدار الحماية الخاص بك. يستخدم النموذج في هذا البرنامج التعليمي بروتوكول MQTT، الذي يتصل عبر المنفذ 8883. قد يُحظر هذا المنفذ في بعض بيئات الشبكات التعليمية، وشبكات الشركات.
  • تحتاج إلى شهادة عميل X.509 لإنشاء بصمة الإبهام ومصادقة اتصال العميل.

إنشاء نموذج شهادة العميل وبصمة الإبهام

إذا لم يكن لديك شهادة بالفعل، يمكنك إنشاء نموذج شهادة باستخدام الخطوة CLI. ضع في اعتبارك التثبيت يدويا لنظام التشغيل Windows.

بعد تثبيت Step بنجاح، يجب فتح موجه أوامر في مجلد ملف تعريف المستخدم (Win+R type ٪USERPROFILE٪).

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

    step ca init --deployment-type standalone --name MqttAppSamplesCA --dns localhost --address 127.0.0.1:443 --provisioner MqttAppSamplesCAProvisioner
    
  2. استخدم ملفات CA التي تم إنشاؤها لإنشاء شهادة للعميل الأول. تأكد من استخدام المسار الصحيح لملفات الشهادة والأسرار في الأمر .

    step certificate create client1-authn-ID client1-authn-ID.pem client1-authn-ID.key --ca .step/certs/intermediate_ca.crt --ca-key .step/secrets/intermediate_ca_key --no-password --insecure --not-after 2400h
    
  3. لعرض بصمة الإبهام، قم بتشغيل الأمر خطوة.

    step certificate fingerprint client1-authn-ID.pem
    
  4. الآن، قم بإنشاء شهادة للعميل الثاني.

    step certificate create client2-authn-ID client2-authn-ID.pem client2-authn-ID.key --ca .step/certs/intermediate_ca.crt --ca-key .step/secrets/intermediate_ca_key --no-password --insecure --not-after 2400h
    
  5. لعرض بصمة الإبهام لاستخدامها مع العميل الثاني، قم بتشغيل الأمر Step.

    step certificate fingerprint client2-authn-ID.pem
    

إنشاء مساحة اسم

  1. تسجيل الدخول إلى مدخل Azure.

  2. في شريط البحث، اكتب Event Grid Namespaces، ثم حدد Event Grid Namespaces من القائمة المنسدلة.

    Screenshot of searching for Event Grid namespace on Azure portal.

  3. في صفحة مساحات أسماء شبكة الأحداث، حدد + إنشاء على شريط الأدوات.

  4. في صفحة Create namespace، اتبع الخطوات التالية:

    1. حدد اشتراك Azure الخاص بك.

    2. حدد مجموعة موارد موجودة أو حدد إنشاء جديد وأدخل اسما لمجموعة الموارد.

    3. أدخل اسما فريدا لمساحة الاسم. يجب أن يكون اسم مساحة الاسم فريدا لكل منطقة لأنه يمثل إدخال DNS. لا تستخدم الاسم الموضح في الصورة. بدلا من ذلك، قم بإنشاء اسمك الخاص - يجب أن يتراوح بين 3-50 حرفا وأن يحتوي فقط على قيم a-z و A-Z و 0-9 و -.

    4. حدد موقعا لمساحة اسم Event Grid. حاليا، تتوفر مساحة اسم شبكة الأحداث فقط في مناطق محددة.

      Screenshot showing Event Grid namespace create flow basics tab.

  5. حدد مراجعة + إنشاء عند أسفل الصفحة.

  6. في علامة التبويب Review + create في صفحة Create namespace ، حدد Create.

    إشعار

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

  7. بعد نجاح النشر، حدد Go to resource للانتقال إلى صفحة نظرة عامة على مساحة اسم شبكة الأحداث لمساحة الاسم الخاصة بك.

  8. في صفحة نظرة عامة، ترى أن وسيط MQTT في حالة معطل . لتمكين وسيط MQTT، حدد الارتباط معطل ، سيعاد توجيهك إلى صفحة التكوين.

  9. في صفحة التكوين ، حدد الخيار تمكين وسيط MQTT، ثم حدد تطبيق لتطبيق الإعدادات.

    Screenshot showing Event Grid namespace configuration page to enable MQTT.

إنشاء عملاء

  1. في القائمة اليسرى، حدد العملاء في قسم وسيط MQTT.

  2. في صفحة العملاء ، حدد + Client على شريط الأدوات.

    Screenshot of the Clients page with Add button selected.

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

  4. يتم تعيين اسم مصادقة العميل افتراضيا إلى اسم العميل. لهذا البرنامج التعليمي، قم بتغييره إلى client1-authn-ID. تحتاج إلى تضمين هذا الاسم كما في Username حزمة CONNECT.

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

    Screenshot of client 1 configuration.

  6. حدد Create على شريط الأدوات لإنشاء عميل آخر.

  7. كرر الخطوات المذكورة أعلاه لإنشاء عميل ثان باسم client2. غير اسم المصادقة إلى client2-authn-ID وقم بتضمين بصمة الإبهام لشهادة العميل الثانية في بصمة الإبهام الأساسية.

    Screenshot of client 2 configuration.

    إشعار

    • للحفاظ على بساطة QuickStart، ستستخدم مطابقة بصمة الإبهام للمصادقة. للحصول على خطوات مفصلة حول استخدام سلسلة شهادات المرجع المصدق X.509 لمصادقة العميل، راجع مصادقة العميل باستخدام سلسلة الشهادات.
    • أيضا، نستخدم مجموعة العملاء الافتراضية $all ، والتي تتضمن جميع العملاء في مساحة الاسم لهذا التمرين. لمعرفة المزيد حول إنشاء مجموعات عملاء مخصصة باستخدام سمات العميل، راجع مجموعات العملاء.

إنشاء مسافات المواضيع

  1. في القائمة اليسرى، حدد مسافات الموضوع في قسم وسيط MQTT.

  2. في صفحة مسافات الموضوع، حدد + مساحة الموضوع على شريط الأدوات.

    Screenshot of Topic spaces page with create button selected.

  3. أدخل اسما لمساحة الموضوع، في صفحة إنشاء مساحة موضوع.

  4. حدد + إضافة قالب موضوع.

    Screenshot of Create topic space with the name.

  5. أدخل contosotopics/topic1 لقالب الموضوع، ثم حدد إنشاء لإنشاء مساحة الموضوع.

    Screenshot of topic space configuration.

تكوين التحكم في الوصول باستخدام روابط الأذونات

  1. في القائمة اليسرى، حدد روابط الأذونات في قسم وسيط MQTT.

  2. في صفحة روابط الأذونات، حدد + ربط الأذونات على شريط الأدوات.

    Screenshot that shows the Permission bindings page with the Create button selected.

  3. تكوين ربط الإذن كما يلي:

    1. أدخل اسما لربط الإذن. على سبيل المثال، contosopublisherbinding

    2. بالنسبة إلى اسم مجموعة العملاء، حدد $all.

    3. بالنسبة إلى اسم مساحة الموضوع، حدد مساحة الموضوع التي أنشأتها في الخطوة السابقة.

    4. امنح Publisher الإذن لمجموعة العملاء حول مساحة الموضوع.

      Screenshot showing creation of first permission binding.

  4. حدد إنشاء لإنشاء ربط الأذونات.

  5. أنشئ ربط أذونات آخر (contososubscriberbinding) عن طريق تحديد + ربط الأذونات على شريط الأدوات.

  6. أدخل اسما وامنح $all مجموعة العملاء حق الوصول إلى ContosoTopicSpace كما هو موضح.

    Screenshot showing creation of second permission binding.

  7. حدد إنشاء لإنشاء ربط الأذونات.

الاتصال العملاء إلى مساحة اسم EG باستخدام تطبيق MQTTX

  1. لنشر / الاشتراك في رسائل MQTT، يمكنك استخدام أي من الأدوات المفضلة لديك. لغرض العرض التوضيحي، يتم عرض النشر / الاشتراك باستخدام تطبيق MQTTX، والذي يمكن تنزيله من https://mqttx.app/.

    Screenshot showing MQTTX app left rail to add new client.

  2. تكوين client1 باستخدام

    • الاسم ك client1 (يمكن أن تكون هذه القيمة أي شيء)

    • معرف العميل ك client1-session1 (يتم استخدام معرف العميل في حزمة CONNECT لتحديد معرف جلسة العمل لاتصال العميل)

    • اسم المستخدم ك client1-authn-ID. يجب أن تتطابق هذه القيمة مع قيمة اسم مصادقة العميل التي حددتها عند إنشاء العميل في مدخل Microsoft Azure.

      هام

      يجب أن يتطابق اسم المستخدم مع اسم مصادقة العميل في بيانات تعريف العميل.

  3. تحديث اسم المضيف إلى اسم مضيف MQTT من صفحة Overview لمساحة الاسم.

    Screenshot showing Event Grid namespace overview page, which has MQTT hostname.

  4. تحديث المنفذ إلى 8883.

  5. تبديل SSL/TLS إلى تشغيل.

  6. قم بتبديل SSL Secure إلى ON، لضمان التحقق من صحة شهادة الخدمة.

  7. حدد الشهادة كموقعة ذاتيا.

  8. توفير مسار ملف شهادة العميل.

  9. توفير المسار لملف مفتاح العميل.

  10. يمكن ترك بقية الإعدادات بقيم افتراضية معرفة مسبقا.

    Screenshot showing client 1 configuration part 1 on MQTTX app.

  11. حدد الاتصال لتوصيل العميل كوسيط MQTT.

  12. كرر الخطوات المذكورة أعلاه لتوصيل العميل الثاني2، بمعلومات المصادقة المقابلة كما هو موضح.

    Screenshot showing client 2 configuration part 1 on MQTTX app.

    Screenshot showing client 2 configuration part 2 on MQTTX app.

النشر/الاشتراك باستخدام تطبيق MQTTX

  1. بعد توصيل العملاء، بالنسبة إلى client2، حدد الزر + New Subscription .

  2. أضف contosotopics/topic1 كموضوع وحدد Confirm. يمكنك ترك الحقول الأخرى بقيم افتراضية موجودة.

    Screenshot showing subscription topic configuration on MQTTX app.

  3. حدد client1 في السكك الحديدية اليسرى.

  4. بالنسبة إلى client1، أعلى مربع إنشاء الرسالة، اكتب contosotopics/topic1 كموضوع للنشر عليه.

  5. إنشاء رسالة. يمكنك استخدام أي تنسيق أو JSON كما هو موضح.

  6. حدد الزر إرسال.

    Screenshot showing message publishing on the topic in MQTTX app.

  7. يجب أن ينظر إلى الرسالة على أنها منشورة في العميل 1.

    Screenshot showing message published on the topic in MQTTX app.

  8. التبديل إلى client2. تأكد من تلقي client2 للرسالة.

    Screenshot showing the message received by the subscribing client on MQTTX app.

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