الاتصال موصل سحابة جسر MQTT ل Azure IoT MQ Preview إلى وسطاء MQTT الآخرين

هام

معاينة عمليات Azure IoT - التي تم تمكينها بواسطة Azure Arc قيد المعاينة حاليا. يجب عدم استخدام برنامج المعاينة هذا في بيئات الإنتاج.

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

يمكنك استخدام جسر Azure IoT MQ Preview MQTT للاتصال ب Azure Event Grid أو وسطاء MQTT الآخرين. جسر MQTT هو عملية ربط اثنين من وسطاء MQTT معا حتى يتمكنوا من تبادل الرسائل.

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

للوصول إلى وسيط آخر، يجب أن يعرف Azure IoT MQ عنوان URL لنقطة نهاية الوسيط البعيد، وإصدار MQTT، وكيفية المصادقة، والموضوعات التي يجب تعيينها. لتحقيق أقصى قدر من إمكانية الإنشاء والمرونة بطريقة Kubernetes الأصلية، يتم تكوين هذه القيم كموارد Kubernetes مخصصة (CRDs) تسمى MqttBridge الاتصال or وMqttBridgeTopicMap. يستعرض هذا الدليل كيفية إنشاء موصل جسر MQTT باستخدام هذه الموارد.

  1. إنشاء ملف YAML يعرف مورد MqttBridge الاتصال or. يمكنك استخدام مثال YAML، ولكن تأكد من تغيير namespace لمطابقة الذي تم نشر Azure IoT MQ، و remoteBrokerConnection.endpoint لمطابقة عنوان URL لنقطة نهاية الوسيط البعيد.

  2. إنشاء ملف YAML يعرف مورد MqttBridgeTopicMap . يمكنك استخدام مثال YAML، ولكن تأكد من تغيير namespace لمطابقة الذي تم نشر Azure IoT MQ، و mqttBridgeConnectorRef لمطابقة اسم مورد MqttBridge الاتصال or الذي قمت بإنشائه في الخطوة السابقة.

  3. انشر موصل جسر MQTT وخريطة الموضوع باستخدام kubectl apply -f <filename>.

    $ kubectl apply -f my-mqtt-bridge.yaml 
    mqttbridgeconnectors.mq.iotoperations.azure.com my-mqtt-bridge created
    $ kubectl apply -f my-topic-map.yaml
    mqttbridgetopicmaps.mq.iotoperations.azure.com my-topic-map created
    

بمجرد النشر، استخدم kubectl get pods للتحقق من بدء تدفق الرسائل من وإلى نقطة النهاية.

تكوين MqttBridge الاتصال or

يحدد مورد MqttBridge الاتصال or موصل جسر MQTT الذي يمكنه التواصل مع وسيط بعيد. وهو يتضمن المكونات التالية:

  • مثيل واحد أو أكثر من موصل جسر MQTT. كل مثيل عبارة عن حاوية تقوم بتشغيل موصل جسر MQTT.
  • اتصال وسيط عن بعد.
  • اتصال وسيط محلي اختياري.

يوضح المثال التالي مثالا لتكوين الجسر إلى وسيط Azure Event Grid MQTT. ويستخدم الهوية المدارة المعينة من قبل النظام للمصادقة وتشفير TLS.

apiVersion: mq.iotoperations.azure.com/v1beta1
kind: MqttBridgeConnector
metadata:
  name: my-mqtt-bridge
  namespace: azure-iot-operations
spec:
  image: 
    repository: mcr.microsoft.com/azureiotoperations/mqttbridge 
    tag: 0.4.0-preview
    pullPolicy: IfNotPresent
  protocol: v5
  bridgeInstances: 1
  clientIdPrefix: factory-gateway-
  logLevel: debug
  remoteBrokerConnection:
    endpoint: example.westeurope-1.ts.eventgrid.azure.net:8883
    tls:
      tlsEnabled: true
    authentication:
      systemAssignedManagedIdentity:
        audience: https://eventgrid.azure.net
  localBrokerConnection:
    endpoint: aio-mq-dmqtt-frontend:8883
    tls:
      tlsEnabled: true
      trustedCaCertificateConfigMap: aio-ca-trust-bundle-test-only
    authentication:
      kubernetes: {}

يصف الجدول التالي الحقول في مورد MqttBridge الاتصال or:

الحقل المطلوب ‏‏الوصف
صورة ‏‏نعم‬ صورة موصل Kafka. يمكنك تحديد pullPolicyو repositoryو tag للصورة. يتم عرض القيم المناسبة في المثال السابق.
البروتوكول ‏‏نعم‬ إصدار بروتوكول MQTT. يمكن أن يكون v5، أو v3. راجع دعم MQTT v3.1.1.
bridgeInstances لا عدد مثيلات موصل الجسر. القيمة الافتراضية هي 1. راجع عدد المثيلات.
clientIdPrefix لا بادئة معرف العميل الذي تم إنشاؤه ديناميكيا. الافتراضي ليس بادئة. راجع تكوين معرف العميل.
logLevel لا مستوى السجل. يمكن أن يكون debug، أو info. القيمة الافتراضية هي info.
remoteBroker الاتصال ion ‏‏نعم‬ الاتصال تفاصيل الوسيط البعيد للجسر إليه. راجع اتصال الوسيط البعيد.
localBroker الاتصال ion لا الاتصال تفاصيل الوسيط المحلي للجسر إليه. الإعدادات الافتراضية للقيمة المعروضة. راجع اتصال الوسيط المحلي.

دعم MQTT v3.1.1

يمكن تكوين موصل الجسر لاستخدام MQTT v3.1.1 مع كل من اتصال الوسيط المحلي ل Azure IoT MQ واتصال الوسيط البعيد. ومع ذلك، يؤدي هذا إلى قطع الاشتراكات المشتركة إذا لم يكن الوسيط البعيد يدعمها. إذا كنت تخطط لاستخدام الاشتراكات المشتركة، فاتركها ك v5 افتراضية.

عدد المثيلات

للحصول على قابلية وصول عالية ومقياس، قم بتكوين موصل جسر MQTT لاستخدام مثيلات متعددة. يتم موازنة تدفق الرسائل والمسارات تلقائيا بين مثيلات مختلفة.

spec:
  bridgeInstances: 2

تكوين معرف العميل

يقوم Azure IoT MQ بإنشاء معرف عميل لكل عميل MqttBridge الاتصال or، باستخدام بادئة تحددها، بتنسيق {clientIdPrefix}-{routeName}. يعد معرف العميل هذا مهما ل Azure IoT MQ للتخفيف من فقدان الرسائل وتجنب التعارضات أو التصادمات مع معرفات العميل الحالية لأن مواصفات MQTT تسمح باتصال واحد فقط لكل معرف عميل.

على سبيل المثال، إذا ، وكان clientIdPrefix: "client-"هناك اثنان routes في خريطة الموضوع، فإن معرفات العميل هي: client-route1 و client-route2.

اتصال الوسيط عن بعد

remoteBrokerConnection يحدد الحقل تفاصيل الاتصال لربطها بالوسيط البعيد. ويتضمن الحقول التالية:

الحقل المطلوب ‏‏الوصف
نقطة النهاية ‏‏نعم‬ عنوان URL لنقطة نهاية الوسيط البعيد مع المنفذ. على سبيل المثال، example.westeurope-1.ts.eventgrid.azure.net:8883
Tls ‏‏نعم‬ يحدد ما إذا كان الاتصال مشفرا باستخدام TLS وشهادة CA الموثوق بها. راجع دعم TLS
المصادقة ‏‏نعم‬ تفاصيل المصادقة ل Azure IoT MQ لاستخدامها مع الوسيط. يجب أن تكون إحدى القيم التالية: الهوية المدارة المعينة من قبل النظام أو X.509. راجع المصادقة.
البروتوكول لا تحدد قيمة السلسلة لاستخدام MQTT أو MQTT عبر WebSockets. يمكن أن يكون mqtt، أو webSocket. القيمة الافتراضية هي mqtt.

المصادقة

يحدد حقل المصادقة طريقة المصادقة ل Azure IoT MQ لاستخدامها مع الوسيط البعيد. ويتضمن الحقول التالية:

الحقل المطلوب ‏‏الوصف
systemAssignedManagedIdentity لا المصادقة باستخدام الهوية المدارة المعينة من قبل النظام. راجع الهوية المدارة.
x509 لا تفاصيل المصادقة باستخدام شهادات X.509. راجع X.509.

الهوية المُدارة

يتضمن حقل systemAssignedManagedIdentity الحقول التالية:

الحقل المطلوب ‏‏الوصف
audience ‏‏نعم‬ الجمهور للرمز المميز. مطلوب إذا كنت تستخدم هوية مدارة. بالنسبة إلى Event Grid، فهي https://eventgrid.azure.net.

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

لاستخدام الهوية المدارة للمصادقة مع موارد Azure، قم أولا بتعيين دور Azure RBAC مناسب مثل EventGrid TopicSpaces Publisher إلى الهوية المدارة ل Azure IoT MQ التي يوفرها Arc.

ثم حدد وMQT ТБ ridge الاتصال or مع الهوية المدارة كطريقة المصادقة:

spec:
  remoteBrokerConnection:
    authentication:
      systemAssignedManagedIdentity:
        audience: https://eventgrid.azure.net

عند استخدام الهوية المدارة، لا يكون معرف العميل قابلا للتكوين، ويساوي معرف مورد Azure Resource Manager داخل Azure لملحق Azure IoT MQ Azure Arc.

يتم توفير الهوية المدارة المعينة من قبل النظام بواسطة Azure Arc. يجب تجديد الشهادة المقترنة بالهوية المدارة كل 90 يوما على الأقل لتجنب عملية الاسترداد اليدوي. لمعرفة المزيد، راجع كيف أعمل موارد Kubernetes التي انتهت صلاحيتها باستخدام Azure Arc للعنوان؟

X.509

x509 يتضمن الحقل الحقول التالية:

الحقل المطلوب ‏‏الوصف
secretName ‏‏نعم‬ سر Kubernetes الذي يحتوي على شهادة العميل والمفتاح الخاص. يمكنك استخدام Azure Key Vault لإدارة الأسرار ل Azure IoT MQ بدلا من أسرار Kubernetes. لمعرفة المزيد، راجع إدارة الأسرار باستخدام Azure Key Vault أو أسرار Kubernetes.

يدعم العديد من وسطاء MQTT، مثل Event Grid، مصادقة X.509. يمكن أن يقدم جسر MQTT الخاص ب Azure IoT MQ شهادة عميل X.509 ويتفاوض على اتصال TLS. استخدم سر Kubernetes لتخزين شهادة العميل X.509 والمفتاح الخاص والمرجع المصدق الوسيط.

kubectl create secret generic bridge-client-secret \
--from-file=client_cert.pem=mqttbridge.pem \
--from-file=client_key.pem=mqttbridge.key \
--from-file=client_intermediate_certs.pem=intermediate.pem

وقم بالإشارة إليه باستخدام secretName:

spec:
  remoteBrokerConnection:
    authentication:
      x509:
        secretName: bridge-client-cert

اتصال الوسيط المحلي

localBrokerConnection يحدد الحقل تفاصيل الاتصال لربطها بالوسيط المحلي.

الحقل المطلوب ‏‏الوصف
نقطة النهاية ‏‏نعم‬ عنوان URL لنقطة نهاية الوسيط البعيد مع المنفذ.
Tls ‏‏نعم‬ يحدد ما إذا كان الاتصال مشفرا باستخدام TLS وشهادة CA الموثوق بها. راجع دعم TLS
المصادقة ‏‏نعم‬ تفاصيل المصادقة ل Azure IoT MQ لاستخدامها مع الوسيط. الأسلوب الوحيد المدعوم هو الرمز المميز لحساب خدمة Kubernetes (SAT). لاستخدام SAT، حدد kubernetes: {}.

بشكل افتراضي، يتم نشر IoT MQ في مساحة azure-iot-operations الاسم مع تمكين TLS ومصادقة SAT.

ثم يجب تكوين إعداد اتصال الوسيط المحلي MqttBridge الاتصال or للمطابقة. يجب أن يكون localBrokerConnection YAML للتوزيع ل MqttBridge الاتصال or بنفس مستوى remoteBrokerConnection. على سبيل المثال، لاستخدام TLS مع مصادقة SAT من أجل مطابقة توزيع IoT MQ الافتراضي:

spec:
  localBrokerConnection:
    endpoint: aio-mq-dmqtt-frontend:8883
    tls:
      tlsEnabled: true
      trustedCaCertificateConfigMap: aio-ca-trust-bundle-test-only
    authentication:
      kubernetes: {}

هنا، trustedCaCertifcateName هو ConfigMap للمرجع المصدق الجذر ل Azure IoT MQ، مثل ConfigMap للجذر ca للوسيط البعيد. يتم تخزين المرجع المصدق الجذر الافتراضي في ConfigMap المسمى aio-ca-trust-bundle-test-only.

لمزيد من المعلومات حول الحصول على المرجع المصدق الجذر، راجع تكوين TLS مع إدارة الشهادات التلقائية لتأمين اتصال MQTT.

دعم TLS

tls يعرف الحقل تكوين TLS لاتصال الوسيط البعيد أو المحلي. ويتضمن الحقول التالية:

الحقل المطلوب ‏‏الوصف
tlsEnabled ‏‏نعم‬ ما إذا كان TLS ممكنا أم لا.
trustedCaCertificateConfigMap لا شهادة المرجع المصدق التي يجب الوثوق بها عند الاتصال بالوسيط. مطلوب إذا تم تمكين TLS.

يتوفر دعم تشفير TLS لكل من اتصالات الوسيط البعيدة والمحلية.

  • لاتصال الوسيط عن بعد: إذا تم تمكين TLS، يجب تحديد شهادة CA موثوق بها كمرجع Kubernetes ConfigMap . إذا لم يكن الأمر كذلك، فمن المحتمل أن يفشل تأكيد اتصال TLS ما لم تكن نقطة النهاية البعيدة موثوق بها على نطاق واسع تكون شهادة المرجع المصدق الموثوق بها موجودة بالفعل في مخزن شهادات نظام التشغيل. على سبيل المثال، تستخدم شبكة الأحداث جذر المرجع المصدق الموثوق به على نطاق واسع لذلك لا يلزم تحديد.
  • بالنسبة لاتصال وسيط (Azure IoT MQ) المحلي: إذا تم تمكين TLS لمستمع وسيط Azure IoT MQ، يجب تحديد شهادة CA التي أصدرت شهادة خادم وحدة الاستماع كمرجع Kubernetes ConfigMap .

عند تحديد مرجع مصدق موثوق به مطلوب، قم بإنشاء ConfigMap يحتوي على جرعة عامة من المرجع المصدق وحدد اسم configmap في الخاصية trustedCaCertificateConfigMap . على سبيل المثال:

kubectl create configmap client-ca-configmap --from-file ~/.step/certs/root_ca.crt

تكوين MqttBridgeTopicMap

يحدد مورد MqttBridgeTopicMap تعيين الموضوع بين الوسطاء المحليين والوسطاء البعيدين. يجب استخدامه مع مورد MqttBridge الاتصال or. وهو يتضمن المكونات التالية:

  • اسم مورد MqttBridge الاتصال or المراد الارتباط به.
  • قائمة مسارات التجسير.
  • تكوين اشتراك مشترك اختياري.

يمكن ل MqttBridge الاتصال or استخدام MqttBridgeTopic الخرائط متعددة مرتبطة به. عند نشر مورد MqttBridge الاتصال or، يبدأ عامل تشغيل Azure IoT MQ في فحص مساحة الاسم لأي MqttBridgeTopic الخرائط مرتبط به وإدارة تدفق الرسائل تلقائيا بين مثيلات MqttBridge الاتصال or. بعد ذلك، بمجرد نشرها، يتم ربط MqttBridgeTopicMap ب MqttBridge الاتصال or. يمكن ربط كل MqttBridgeTopicMap ب MqttBridge الاتصال or واحد فقط.

يوضح المثال التالي تكوين MqttBridgeTopicMap لربط الرسائل من الموضوع remote-topic البعيد إلى الموضوع local-topicالمحلي :

apiVersion: mq.iotoperations.azure.com/v1beta1
kind: MqttBridgeTopicMap
metadata:
  name: my-topic-map
  namespace: azure-iot-operations 
spec:
  mqttBridgeConnectorRef: my-mqtt-bridge
  routes:
    - direction: remote-to-local
      name: first-route
      qos: 0
      source: remote-topic
      target: local-topic
      sharedSubscription:
        groupMinimumShareNumber: 3
        groupName: group1
    - direction: local-to-remote
      name: second-route
      qos: 1
      source: local-topic
      target: remote-topic

يصف الجدول التالي الحقول في مورد MqttBridgeTopicMap:

الحقول المطلوب ‏‏الوصف
mqttBridge الاتصال orRef ‏‏نعم‬ اسم المورد المراد MqttBridgeConnector الارتباط به.
المسارات ‏‏نعم‬ قائمة مسارات التجسير. لمزيد من المعلومات، راجع المسارات.

مسارات

يمكن أن يكون ل MqttBridgeTopicMap مسارات متعددة. routes يعرف الحقل قائمة المسارات. ويتضمن الحقول التالية:

الحقول المطلوب ‏‏الوصف
اتجاه ‏‏نعم‬ اتجاه تدفق الرسالة. يمكن أن يكون remote-to-local أو local-to-remote. لمزيد من المعلومات، راجع الاتجاه.
الاسم ‏‏نعم‬ اسم المسار.
Qos لا جودة خدمة MQTT (QoS). تعود الإعدادات الافتراضية على 1.
المصدر ‏‏نعم‬ موضوع MQTT المصدر. يمكن أن يكون لها أحرف بدل مثل # و +. راجع أحرف البدل في الموضوع المصدر.
الهدف لا موضوع MQTT الهدف. لا يمكن أن يكون لديك أحرف بدل. إذا لم يتم تحديده، فسيكون نفس المصدر. راجع موضوع المصدر المرجعي في الهدف.
الاشتراك المشترك لا تكوين الاشتراك المشترك. تنشيط عدد مكون من العملاء للحصول على مقياس إضافي. لمزيد من المعلومات، راجع الاشتراكات المشتركة.

الاتجاه

على سبيل المثال، إذا كان الاتجاه محليا إلى بعيد، فإن Azure IoT MQ ينشر جميع الرسائل حول الموضوع المحلي المحدد إلى الموضوع البعيد:

routes:
  - direction: local-to-remote
    name: "send-alerts"
    source: "alerts"
    target: "factory/alerts"

إذا تم عكس الاتجاه، يتلقى Azure IoT MQ رسائل من وسيط بعيد. هنا، يتم حذف الهدف ويتم نشر جميع الرسائل من commands/factory الموضوع على الوسيط البعيد على نفس الموضوع محليا.

routes:
  - direction: remote-to-local
    name: "receive-commands"
    source: "commands/factory"

أحرف البدل في الموضوع المصدر

للجسر من الموضوعات غير الأساسية، استخدم أحرف البدل لتحديد كيفية مطابقة أنماط الموضوع وقاعدة ترجمة اسم الموضوع. على سبيل المثال، لوصل جميع الرسائل في جميع المواضيع الفرعية ضمن telemetry، استخدم حرف البدل متعدد المستويات # :

routes:
  - direction: local-to-remote
    name: "wildcard-source"
    source: "telemetry/#"
    target: "factory/telemetry"

في المثال، إذا تم نشر رسالة إلى أي موضوع ضمن telemetry، مثل telemetry/furnace/temperature، فإن Azure IoT MQ ينشرها إلى الوسيط الجسر البعيد ضمن الموضوع الثابتfactory/telemetry.

بالنسبة لحرف البدل لموضوع أحادي المستوى، استخدم + بدلا من ذلك، مثل telemetry/+/temperature.

يجب أن يعرف موصل جسر MQTT الموضوع الدقيق في الوسيط الهدف إما عن بعد أو Azure IoT MQ دون أي غموض. تتوفر أحرف البدل فقط كجزء من source الموضوع.

موضوع المصدر المرجعي في الهدف

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

على سبيل المثال، يتم وصل أي رسالة منشورة ضمن الموضوع my-topic/#، مثل my-topic/foo أو my-topic/bar، إلى الوسيط البعيد ضمن نفس الموضوع:

routes:
  - direction: local-to-remote
    name: "target-same-as-source"
    source: "my-topic/#"
    # No target

الأساليب الأخرى لمرجع موضوع المصدر غير مدعومة.

الاشتراكات المشتركة

sharedSubscription يعرف الحقل تكوين الاشتراك المشترك للمسار. ويتضمن الحقول التالية:

الحقول المطلوب ‏‏الوصف
groupMinimumShareNumber ‏‏نعم‬ عدد العملاء الذين يجب استخدامهم للاشتراك المشترك.
اسم المجموعة ‏‏نعم‬ اسم مجموعة الاشتراك المشترك.

تساعد الاشتراكات المشتركة Azure IoT MQ على إنشاء المزيد من العملاء لوصلة MQTT. يمكنك إعداد اشتراك مشترك مختلف لكل مسار. يشترك Azure IoT MQ في الرسائل من الموضوع المصدر ويرسلها إلى عميل واحد في كل مرة باستخدام round robin. ثم ينشر العميل الرسائل إلى الوسيط الموصل.

على سبيل المثال، إذا قمت بإعداد مسار مع اشتراك مشترك وقمت بتعيين ك groupMinimumShareNumber3:

routes:
    - direction: local-to-remote
      qos: 1
      source: "shared-sub-topic"
      target: "remote/topic"
      sharedSubscription:
        groupMinimumShareNumber: 3
        groupName: "sub-group"

ينشئ جسر MQTT الخاص ب Azure IoT MQ ثلاثة عملاء مشتركين بغض النظر عن عدد المثيلات. يحصل عميل واحد فقط على كل رسالة من $share/sub-group/shared-sub-topic. ثم ينشر نفس العميل الرسالة إلى الوسيط البعيد الموصول تحت الموضوع remote/topic. تنتقل الرسالة التالية إلى عميل آخر.

يساعدك هذا على موازنة حركة مرور الرسائل للجسر بين عملاء متعددين بمعرفات مختلفة. وهذا مفيد إذا كان الوسيط الذي تم وصله يحد من عدد الرسائل التي يمكن لكل عميل إرسالها.

دعم وسيط Azure Event Grid MQTT

لتقليل إدارة بيانات الاعتماد، يعد استخدام الهوية المدارة المعينة من قبل النظام وAzure RBAC هي الطريقة الموصى بها لوصل Azure IoT MQ بميزة وسيط MQTT في Azure Event Grid.

للحصول على برنامج تعليمي شامل، راجع البرنامج التعليمي: تكوين جسر MQTT بين Azure IoT MQ Preview وAzure Event Grid.

الاتصال إلى وسيط Event Grid MQTT بهوية مدارة

أولا، باستخدام az k8s-extension show، ابحث عن المعرف الأساسي لملحق Azure IoT MQ Arc. لاحظ قيمة الإخراج ل identity.principalId، والتي يجب أن تبدو مثل abcd1234-5678-90ab-cdef-1234567890ab.

az k8s-extension show --resource-group <RESOURCE_GROUP> --cluster-name <CLUSTER_NAME> --name mq --cluster-type connectedClusters --query identity.principalId -o tsv

ثم استخدم Azure CLI لتعيين الأدوار إلى الهوية المدارة لملحق Azure IoT MQ Arc. استبدل <MQ_ID> بالمعرف الأساسي الذي عثرت عليه في الخطوة السابقة. على سبيل المثال، لتعيين دور EventGrid TopicSpaces Publisher :

az role assignment create --assignee <MQ_ID> --role 'EventGrid TopicSpaces Publisher' --scope /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.EventGrid/namespaces/<EVENT_GRID_NAMESPACE>

تلميح

لتحسين مبدأ الامتياز الأقل، يمكنك تعيين الدور إلى مساحة موضوع بدلا من مساحة اسم شبكة الأحداث بأكملها. لمعرفة المزيد، راجع Event Grid RBAC ومسافات Topic.

وأخيرا، قم بإنشاء MQT ТБ ridge الاتصال or واختر الهوية المدارة كطريقة مصادقة. إنشاء MqttBridgeTopic الخرائط ونشر جسر MQTT باستخدام kubectl.

الحد الأقصى لجلسات عمل العميل لكل اسم مصادقة

إذا bridgeInstances تم تعيين أعلى من 1، فقم بتكوين Event Grid MQTT broker Configuration>Maximum client sessions per authentication name لمطابقة عدد المثيلات. يمنع هذا التكوين حدوث مشكلات مثل تجاوز الحصة النسبية للخطأ 151.

حد كل اتصال

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

جسر من وسيط آخر إلى Azure IoT MQ Preview

Azure IoT MQ هو وسيط MQTT متوافق ويمكن للوسطاء الآخرين ربطه باستخدام بيانات اعتماد المصادقة والتخويل المناسبة. على سبيل المثال، راجع وثائق جسر MQTT ل HiveMQ وVerneMQ و EMQX و Mosquitto.