البرنامج التعليمي: توجيه رسائل MQTT في Azure Event Grid إلى Azure Functions باستخدام مواضيع مخصصة - مدخل Microsoft Azure

في هذا البرنامج التعليمي، ستتعلم كيفية توجيه رسائل MQTT التي تتلقاها مساحة اسم Azure Event Grid إلى دالة Azure عبر موضوع مخصص لشبكة الأحداث باتباع الخطوات التالية:

إذا لم يكن لديك اشتراك Azure، فقم بالتسجيل للحصول على حساب مجاني.

إنشاء دالة Azure باستخدام مشغل Event Grid

اتبع الإرشادات من إنشاء دالة Azure باستخدام Visual Studio Code، ولكن استخدم مشغل شبكة الأحداث Azure بدلا من استخدام مشغل HTTP. يجب أن تشاهد تعليمة برمجية مشابهة للمثال التالي:

using System;
using Azure.Messaging;
using Microsoft.Azure.Functions.Worker;
using Microsoft.Extensions.Logging;

namespace Company.Function
{
    public class MyEventGridTriggerFunc
    {
        private readonly ILogger<MyEventGridTriggerFunc> _logger;

        public MyEventGridTriggerFunc(ILogger<MyEventGridTriggerFunc> logger)
        {
            _logger = logger;
        }

        [Function(nameof(MyEventGridTriggerFunc))]
        public void Run([EventGridTrigger] CloudEvent cloudEvent)
        {
            _logger.LogInformation("Event type: {type}, Event subject: {subject}", cloudEvent.Type, cloudEvent.Subject);
        }
    }
}

يمكنك استخدام وظيفة Azure هذه كمعالج أحداث لاشتراك موضوع ما لاحقا في هذا البرنامج التعليمي.

إشعار

  • إنشاء كافة الموارد في نفس المنطقة.
  • تم اختبار هذا البرنامج التعليمي باستخدام دالة Azure التي تستخدم مكدس وقت التشغيل .NET 8.0 (معزول).

إنشاء موضوع Event Grid (موضوع مخصص)

إنشاء موضوع Event Grid. راجع إنشاء موضوع مخصص باستخدام المدخل. عند إنشاء موضوع Event Grid، في علامة التبويب Advanced، لمخطط الحدث، حدد Cloud Event Schema v1.0.

لقطة شاشة تعرض صفحة Advanced لمعالج Create Topic.

إشعار

استخدم مخطط حدث السحابة في كل مكان في هذا البرنامج التعليمي.

إضافة اشتراك إلى الموضوع باستخدام الدالة

في هذه الخطوة، يمكنك إنشاء اشتراك في موضوع Event Grid باستخدام دالة Azure التي أنشأتها سابقا.

  1. في صفحة موضوع شبكة الأحداث، حدد الاشتراكات على شريط التنقل الأيمن.

    لقطة شاشة تعرض صفحة اشتراكات الأحداث لموضوع ما.

  2. في صفحة إنشاء اشتراك حدث، قم بالخطوات التالية:

    1. أدخل اسماً للاشتراك في الحدث.

    2. بالنسبة لمخطط الحدث، حدد Cloud Event Schema 1.0.

    3. بالنسبة إلى Endpoint type، حدد Azure Functions.

    4. ثم حدد تكوين نقطة نهاية.

      لقطة شاشة تعرض صفحة إنشاء اشتراك حدث.

  3. في صفحة Select Azure function ، قم بالخطوات التالية:

    1. بالنسبة إلى Subscription، حدد اشتراك Azure الخاص بك.

    2. بالنسبة لمجموعة الموارد، حدد مجموعة الموارد التي تحتوي على دالة Azure.

    3. بالنسبة إلى Function app، حدد تطبيق Functions الذي يحتوي على الوظيفة.

    4. بالنسبة إلى Slot، حدد Production.

    5. بالنسبة للدالة، حدد دالة Azure.

    6. ثم حدد تأكيد التحديد في أسفل الصفحة.

      لقطة شاشة تعرض صفحة تحديد دالة Azure.

  4. في صفحة Create Event Subscription ، حدد Create.

  5. في صفحة اشتراكات الأحداث، يجب أن تشاهد الاشتراك الذي أنشأته.

إنشاء مساحة الاسم والعملاء ومسافات المواضيع وروابط الأذونات

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

  1. إنشاء مساحة اسم Event Grid.
  2. إنشاء عميلين.
  3. إنشاء مساحة موضوع.
  4. إنشاء روابط أذونات الناشر والمشترك.
  5. اختبر استخدام تطبيق MQTTX للتأكد من أن العملاء قادرون على إرسال الرسائل وتلقيها.

تمكين الهوية المدارة لمساحة الاسم

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

  1. في صفحة Event Grid Namespace ، حدد Identity في قائمة التنقل اليسرى.

    لقطة شاشة تعرض مساحة اسم شبكة الأحداث مع تحديد علامة التبويب الهوية.

  2. انتقل إلى Event Grid Topic للموضوع المخصص لشبكة الأحداث.

  3. حدد Access control على شريط التنقل الأيسر.

  4. في صفحة التحكم بالوصول، حدد إضافة، ثم حدد إضافة تعيين دور.

    لقطة شاشة تعرض صفحة التحكم في الوصول.

  5. في صفحة الدور في معالج إضافة تعيين دور، حدد دور مرسل بيانات شبكة الأحداث، وحدد التالي في أسفل الصفحة.

    لقطة شاشة تعرض صفحة **Role** لمعالج **Add role assignment**.

  6. في صفحة الأعضاء في معالج إضافة تعيين الدور، حدد الهوية المدارة، ثم اختر تحديد أعضاء.

    لقطة شاشة تعرض صفحة الأعضاء في معالج إضافة تعيين الدور.

  7. في صفحة تحديد الهويات المدارة ، قم بتنفيذ الخطوات التالية:

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

    2. بالنسبة إلى الهوية المدارة، حدد Event Grid Namespace.

    3. حدد الهوية المدارة التي لها نفس اسم مساحة اسم شبكة الأحداث.

    4. اختر تحديد في أسفل الصفحة.

      لقطة شاشة تعرض صفحة تحديد الهويات المدارة.

  8. في صفحة إضافة تعيين دور، حدد التالي في أسفل الصفحة.

  9. في صفحة Review + assign ، راجع الإعدادات، ثم حدد Review + assign في أسفل الصفحة.

تكوين رسائل التوجيه إلى دالة Azure عبر موضوع مخصص

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

  1. في صفحة Event Grid Namespace ، حدد Routing على شريط التنقل الأيمن.

  2. في صفحة التوجيه ، حدد تمكين التوجيه.

  3. بالنسبة لنوع الموضوع، حدد موضوع مخصص.

  4. بالنسبة إلى Topic، حدد الموضوع المخصص الذي أنشأته لهذا البرنامج التعليمي.

  5. بالنسبة إلى الهوية المدارة للتسليم، حدد النظام المعين.

  6. حدد تطبيق في أسفل الصفحة.

    لقطة شاشة تعرض صفحة التوجيه لمساحة الاسم.

إرسال رسائل MQTT الاختبارية باستخدام MQTTX

أرسل رسائل MQTT الاختبارية إلى مساحة الاسم وتأكد من أن الدالة تتلقاها.

اتبع الإرشادات الواردة من مقالة نشر الرسائل والاشتراك فيها باستخدام تطبيق MQTTX لإرسال بعض رسائل الاختبار إلى مساحة اسم شبكة الأحداث.

فيما يلي تدفق الأحداث أو الرسائل:

  1. يرسل MQTTX رسائل إلى مساحة الموضوع لمساحة اسم شبكة الأحداث.

  2. يتم توجيه الرسائل إلى الموضوع المخصص الذي قمت بتكوينه.

  3. تتم إعادة توجيه الرسائل إلى اشتراك الحدث، وهي دالة Azure.

  4. استخدم ميزة التسجيل للتحقق من تلقي الدالة للحدث.

    لقطة شاشة تعرض صفحة دفق السجل لوظيفة Azure.

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

راجع نماذج التعليمات البرمجية في مستودع GitHub هذا.