مسافات الموضوع في ميزة وسيط MQTT الخاصة ب Azure Event Grid

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

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

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

عامل تصفية موضوع MQTT:

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

يدعم وسيط MQTT جميع أحرف البدل MQTT المحددة بواسطة مواصفات MQTT كما يلي:

  • +: الذي يطابق مقطعا واحدا.
    • على سبيل المثال، عامل تصفية الموضوع: "machines/+/alert" يطابق الموضوعات التالية:
      • الأجهزة/المؤقت/التنبيه
      • الأجهزة/الرطوبة/التنبيه
  • #: الذي يطابق صفرا أو أكثر من المقاطع في نهاية الموضوع.
    • على سبيل المثال، عامل تصفية الموضوع: "machines/#" يطابق الموضوعات التالية:
      • الأجهزة
      • الأجهزة/المؤقتة
      • الأجهزة/الرطوبة
      • الأجهزة/المؤقت/التنبيه وما إلى ذلك.

لمزيد من المعلومات حول أحرف البدل، راجع أحرف البدل الموضوع في مواصفات MQTT.

قوالب المواضيع

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

تكوين مساحة الموضوع:

يمكن لمسافات المواضيع تجميع ما يصل إلى 10 قوالب مواضيع. تدعم قوالب المواضيع أحرف البدل MQTT (+ و #) والمتغيرات التالية:

  • ${client.authenticationName}: يمثل هذا المتغير اسم مصادقة العميل. تعرف على المزيد حول أسماء مصادقة العميل.
  • ${client.attributes.x}: يمثل هذا المتغير سمة معينة لعميل أثناء إنشاء/تحديث العميل، مثل "x" سيكون مساويا للسلسلة الدقيقة لمفتاح السمة. على سبيل المثال، إذا كان العميل يحتوي على السمة، فإن قالب الموضوع "area/${client.attributes.area}/telemetry" يمكن العملاء الذين يعانون من سمة> العميل "area:section1" فقط من النشر على موضوع MQTT "area/section1/telemetry". تعرف على المزيد حول سمات العميل.

ملاحظة:

  • الموضوعات التي تبدأ ب $ محجوزة للاستخدام الداخلي.

  • يمكن أن يمثل المتغير جزءا من مقطع أو مقطع بأكمله ولكن لا يمكنه تغطية أكثر من مقطع واحد. على سبيل المثال، قد يتضمن قالب الموضوع "machines/${client.authenticationName|. يطابق factory1}/temp" مواضيع "machines/machine1.factory1/temp"، و"machines/machine2.factory1/temp"، وما إلى ذلك.

  • تستخدم قوالب المواضيع أحرفا خاصة $ و | وهذه تحتاج إلى أن يتم الهروب بشكل مختلف بناء على shell المستخدمة. في PowerShell، يمكن الهروب من $ باستخدام المركبات/${dollar}بيانات تتبع الاستخدام/#. إذا كنت تستخدم PowerShell، يمكنك الهروب من هذه الأحرف الخاصة كما هو موضح في الأمثلة التالية:

    • "vehicles/${client.authenticationName|dollar}/#"

    • vehicles/${client.authenticationName"|"dollar}/#

تكوين مدخل Azure:

استخدم الخطوات التالية لإنشاء مساحة موضوع:

  • انتقل إلى مساحة الاسم في مدخل Microsoft Azure.
  • ضمن مسافات الموضوع، حدد +مساحة الموضوع.
  • تعيين اسم لمساحة الموضوع.

إشعار

  • يمكن أن يتراوح طول اسم مساحة الموضوع من 3 إلى 50 حرفا.
  • يمكن أن يتضمن اسم مساحة الموضوع الأبجدية الرقمية والواصلة (-) وبدون مسافات.
  • إضافة قالب موضوع واحد على الأقل عن طريق تحديد +إضافة قالب موضوع.
  • حدد إنشاء.

لقطة شاشة لتكوين مساحة الموضوع.

تكوين Azure CLI:

استخدم الأوامر التالية لإنشاء مساحة موضوع:

az eventgrid namespace topic-space create -g myRG --namespace-name myNS -n myTopicSpace --topic-templates ['segment1/+/segment3/${client.authenticationName}', "segment1/${client.attributes.attribute1}/segment3/#"]

إشعار

قد يستغرق نشر تحديثات تكوين مساحة الموضوع بضع دقائق.

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

تعرف على المزيد من التخويل والمصادقة:

Quickstart:

Concepts: