Aracılığıyla paylaş


Azure IoT MQ Preview MQTT köprüsü bulut bağlayıcısını diğer MQTT aracılarına Bağlan

Önemli

Azure Arc tarafından etkinleştirilen Azure IoT İşlemleri Önizlemesi şu anda ÖNİzLEME aşamasındadır. Bu önizleme yazılımını üretim ortamlarında kullanmamalısınız.

Beta veya önizleme aşamasında olan ya da başka bir şekilde henüz genel kullanıma sunulmamış olan Azure özelliklerinde geçerli olan yasal koşullar için bkz. Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları.

Azure Event Grid'e veya diğer MQTT aracılarına bağlanmak için Azure IoT MQ Preview MQTT köprüsünü kullanabilirsiniz. MQTT köprü oluşturma, ileti alışverişi için iki MQTT aracısını birbirine bağlama işlemidir.

  • İki aracı birbirine bağlandığında, bir aracıda yayımlanan iletiler otomatik olarak diğerine iletilir ve tersi de geçerlidir.
  • MQTT köprü oluşturma, birbiriyle iletişim kuran bir MQTT aracıları ağı oluşturmaya ve gerektiğinde ek aracılar ekleyerek MQTT altyapısını genişletmeye yardımcı olur.
  • MQTT köprü oluşturma, birden çok fiziksel konum, uç ve bulut arasında MQTT iletilerini ve konularını paylaşmak veya MQTT'yi diğer mesajlaşma sistemleriyle tümleştirmek istediğinizde kullanışlıdır.

Azure IoT MQ, başka bir aracıya köprü oluşturmak için uzak aracı uç noktası URL'sini, hangi MQTT sürümünü, kimlik doğrulamasının nasıl yapılacağını ve hangi konuların eşlenip eşlenebilmelidir. Kubernetes yerel bir şekilde birleştirilebilirliği ve esnekliği en üst düzeye çıkarmak için, bu değerler MqttBridge Bağlan or ve MqttBridgeTopicMap olarak adlandırılan özel Kubernetes kaynakları (CRD) olarak yapılandırılır. Bu kılavuzda, bu kaynakları kullanarak MQTT köprüsü bağlayıcısının nasıl oluşturulacağı anlatılmaktadır.

  1. MqttBridge Bağlan or kaynağını tanımlayan bir YAML dosyası oluşturun. YAML örneğini kullanabilirsiniz, ancak öğesini Azure IoT MQ'nun dağıtılmış olduğu ile ve uzak aracı uç noktası URL'nizle eşleşecek şekilde değiştirdiğinizden namespaceremoteBrokerConnection.endpoint emin olun.

  2. MqttBridgeTopicMap kaynağını tanımlayan bir YAML dosyası oluşturun. YaML örneğini kullanabilirsiniz, ancak değerini Azure IoT MQ'nun dağıtılmış olduğu adla ve mqttBridgeConnectorRef önceki adımda oluşturduğunuz MqttBridge Bağlan or kaynağının adıyla eşleşecek şekilde değiştirdiğinizden namespace emin olun.

  3. MQTT köprü bağlayıcısını ve konu haritasını ile dağıtın 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
    

Dağıtıldıktan sonra, iletilerin uç noktanıza ve uç noktanızdan akmaya başladığını doğrulamak için kullanın kubectl get pods .

MqttBridge'i yapılandırma Bağlan or

MqttBridge Bağlan or kaynağı, uzak bir aracıyla iletişim kurabilen MQTT köprü bağlayıcısını tanımlar. Şu bileşenler bulunur:

  • Bir veya daha fazla MQTT köprüsü bağlayıcı örneği. Her örnek, MQTT köprü bağlayıcısını çalıştıran bir kapsayıcıdır.
  • Uzak aracı bağlantısı.
  • İsteğe bağlı bir yerel aracı bağlantısı.

Aşağıdaki örnekte, Azure Event Grid MQTT aracısına köprü oluşturmaya yönelik örnek bir yapılandırma gösterilmektedir. Kimlik doğrulaması ve TLS şifrelemesi için sistem tarafından atanan yönetilen kimliği kullanır.

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: {}

Aşağıdaki tabloda MqttBridge Bağlan or kaynağındaki alanlar açıklanmaktadır:

Alan Zorunlu Açıklama
görüntü Yes Kafka bağlayıcısının görüntüsü. Görüntünün , repositoryve tag değerini belirtebilirsinizpullPolicy. Önceki örnekte doğru değerler gösterilmiştir.
Protokolü Yes MQTT protokol sürümü. v5 veya v3 olabilir. Bkz. MQTT v3.1.1 desteği.
bridgeInstances Hayır Köprü bağlayıcısı için örnek sayısı. Varsayılan değer 1'dir. Bkz . Örnek sayısı.
clientIdPrefix Hayır Dinamik olarak oluşturulan istemci kimliğinin ön eki. Varsayılan ön ek değildir. Bkz. İstemci kimliği yapılandırması.
Loglevel Hayır Günlük düzeyi. debug veya info olabilir. Varsayılan info değeridir.
remoteBroker Bağlan ion Yes köprü için uzak aracı Bağlan ayrıntıları. Bkz. Uzak aracı bağlantısı.
localBroker Bağlan ion Hayır köprü için yerel aracı Bağlan ayrıntıları. Varsayılan olarak gösterilen değerdir. Bkz. Yerel aracı bağlantısı.

MQTT v3.1.1 desteği

Köprü bağlayıcısı, MQTT v3.1.1'i hem Azure IoT MQ hem de uzak aracı bağlantısı için yerel aracı bağlantısıyla kullanacak şekilde yapılandırılabilir. Ancak bu, uzak aracı desteklemiyorsa paylaşılan abonelikleri bozar. Paylaşılan abonelikleri kullanmayı planlıyorsanız, bunu varsayılan v5 olarak bırakın.

Örnek sayısı

Yüksek kullanılabilirlik ve ölçek için MQTT köprüsü bağlayıcısını birden çok örnek kullanacak şekilde yapılandırın. İleti akışı ve yollar farklı örnekler arasında otomatik olarak dengelenir.

spec:
  bridgeInstances: 2

İstemci Kimliği yapılandırması

Azure IoT MQ, her MqttBridge Bağlan veya istemci için, belirttiğiniz biçimde {clientIdPrefix}-{routeName}bir ön ek kullanarak bir istemci kimliği oluşturur. MQTT belirtimi istemci kimliği başına yalnızca bir bağlantıya izin verdiğinden, bu istemci kimliği, Azure IoT MQ için ileti kaybını azaltmak ve mevcut istemci kimlikleriyle çakışmaları veya çakışmaları önlemek için önemlidir.

Örneğin, konu haritasında iki tane varsaclientIdPrefix: "client-", istemci kimlikleri şunlardır: client-route1 ve client-route2.routes

Uzak aracı bağlantısı

alanı, remoteBrokerConnection uzak aracıya köprü oluşturacak bağlantı ayrıntılarını tanımlar. Aşağıdaki alanları içerir:

Alan Zorunlu Açıklama
endpoint Yes Bağlantı noktası ile uzak aracı uç nokta URL'si. Örneğin, example.westeurope-1.ts.eventgrid.azure.net:8883.
Tls Yes Bağlantının TLS ve güvenilen CA sertifikasıyla şifrelenip şifrelenmediğini belirtir. Bkz. TLS desteği
kimlik doğrulaması Yes Aracıyla kullanılacak Azure IoT MQ kimlik doğrulaması ayrıntıları. Şu değerlerden biri olmalıdır: sistem tarafından atanan yönetilen kimlik veya X.509. Bkz. Kimlik doğrulaması.
Protokolü Hayır WebSockets üzerinden MQTT veya MQTT kullanmak için tanımlayan dize değeri. mqtt veya webSocket olabilir. Varsayılan mqtt değeridir.

Kimlik Doğrulaması

Kimlik doğrulama alanı, uzak aracıyla kullanılacak Azure IoT MQ kimlik doğrulama yöntemini tanımlar. Aşağıdaki alanları içerir:

Alan Zorunlu Açıklama
systemAssignedManagedIdentity Hayır Sistem tarafından atanan yönetilen kimlikle kimlik doğrulaması. Bkz. Yönetilen kimlik.
x509 Hayır X.509 sertifikalarını kullanarak kimlik doğrulaması ayrıntıları. Bkz . X.509.

Yönetilen kimlik

systemAssignedManagedIdentity alanı aşağıdaki alanları içerir:

Alan Zorunlu Açıklama
Seyirci Yes Belirtecin hedef kitlesi. Yönetilen kimlik kullanılıyorsa gereklidir. Event Grid için ise olur https://eventgrid.azure.net.

Azure IoT MQ bir Azure Arc uzantısı olarak dağıtılırsa, varsayılan olarak sistem ataması yönetilen kimliğini alır. Kimlik bilgisi yönetiminden kaçınmanıza ve yüksek kullanılabilirliği korumanıza olanak sağladığından, Event Grid MQTT aracısı da dahil olmak üzere Azure kaynaklarıyla etkileşimde bulunmanız için Azure IoT MQ için yönetilen kimlik kullanmalısınız.

Azure kaynaklarıyla kimlik doğrulaması için yönetilen kimliği kullanmak için önce Arc tarafından sağlanan Azure IoT MQ'nun yönetilen kimliğine EventGrid TopicSpaces Publisher gibi uygun bir Azure RBAC rolü atayın.

Ardından kimlik doğrulama yöntemi olarak yönetilen kimlikle ve MQTTBridge Bağlan or belirtin:

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

Yönetilen kimlik kullandığınızda, istemci kimliği yapılandırılamaz ve Azure'da Azure IoT MQ Azure Arc uzantısı Azure Resource Manager kaynak kimliğine eşittir.

Sistem tarafından atanan yönetilen kimlik Azure Arc tarafından sağlanır. Yönetilen kimlikle ilişkilendirilmiş sertifika, el ile kurtarma işlemini önlemek için en az 90 günde bir yenilenmelidir. Daha fazla bilgi edinmek için bkz. Nasıl yaparım? adresi süresi dolmuş Azure Arc özellikli Kubernetes kaynakları?

X.509

alanı x509 aşağıdaki alanları içerir:

Alan Zorunlu Açıklama
secretName Yes İstemci sertifikasını ve özel anahtarı içeren Kubernetes gizli dizisi. Azure Key Vault'ta Kubernetes gizli dizileri yerine Azure IoT MQ gizli dizilerini yönetebilirsiniz. Daha fazla bilgi edinmek için bkz . Azure Key Vault veya Kubernetes gizli dizilerini kullanarak gizli dizileri yönetme.

Event Grid gibi birçok MQTT aracısı X.509 kimlik doğrulamasını destekler. Azure IoT MQ'nun MQTT köprüsü bir istemci X.509 sertifikası sunabilir ve TLS iletişimi üzerinde anlaşma yapabilir. X.509 istemci sertifikasını, özel anahtarı ve ara CA'yı depolamak için kubernetes gizli dizisi kullanın.

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

Ve ile secretNamebaşvuruda bulunabilir:

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

Yerel aracı bağlantısı

alanı, localBrokerConnection yerel aracıya köprü oluşturacak bağlantı ayrıntılarını tanımlar.

Alan Zorunlu Açıklama
endpoint Yes Bağlantı noktası ile uzak aracı uç nokta URL'si.
Tls Yes Bağlantının TLS ve güvenilen CA sertifikasıyla şifrelenip şifrelenmediğini belirtir. Bkz. TLS desteği
kimlik doğrulaması Yes Aracıyla kullanılacak Azure IoT MQ kimlik doğrulaması ayrıntıları. Desteklenen tek yöntem Kubernetes hizmet hesabı belirtecidir (SAT). SAT kullanmak için belirtin kubernetes: {}.

Varsayılan olarak IoT MQ, TLS etkin ve SAT kimlik doğrulaması ile ad alanında azure-iot-operations dağıtılır.

Ardından MqttBridge Bağlan veya yerel aracı bağlantı ayarı eşleşecek şekilde yapılandırılmalıdır. MqttBridge Bağlan or dağıtım YAML'sinin ile remoteBrokerConnectionaynı düzeyde olması gerekirlocalBrokerConnection. Örneğin, varsayılan IoT MQ dağıtımıyla eşleşmesi için SAT kimlik doğrulaması ile TLS kullanmak için:

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

Burada, trustedCaCertifcateName uzak aracının kök ca'sı için ConfigMap gibi Azure IoT MQ'nun kök CA'sının ConfigMap'i yer alır. Varsayılan kök CA, adlı aio-ca-trust-bundle-test-onlybir ConfigMap'te depolanır.

Kök CA'yı edinme hakkında daha fazla bilgi için bkz . MQTT iletişiminin güvenliğini sağlamak için TLS'yi otomatik sertifika yönetimiyle yapılandırma.

TLS desteği

alanı, tls uzak veya yerel aracı bağlantısı için TLS yapılandırmasını tanımlar. Aşağıdaki alanları içerir:

Alan Zorunlu Açıklama
tlsEnabled Yes TLS'nin etkinleştirilip etkinleştirilmediği.
trustedCaCertificateConfigMap Hayır Aracıya bağlanırken güvenilmesi gereken CA sertifikası. TLS etkinse gereklidir.

TLS şifreleme desteği hem uzak hem de yerel aracı bağlantıları için kullanılabilir.

  • Uzak aracı bağlantısı için: TLS etkinleştirildiyse, Kubernetes ConfigMap başvurusu olarak güvenilen bir CA sertifikası belirtilmelidir. Aksi takdirde, uzak uç nokta yaygın olarak güvenilmediği sürece TLS el sıkışması başarısız olabilir Güvenilen CA sertifikası zaten işletim sistemi sertifika deposundadır. Örneğin, Event Grid yaygın olarak güvenilen CA kökünü kullandığı için belirtme gerekli değildir.
  • Yerel (Azure IoT MQ) aracı bağlantısı için: Azure IoT MQ aracı dinleyicisi için TLS etkinleştirildiyse, dinleyici sunucu sertifikasını veren CA sertifikası Kubernetes ConfigMap başvurusu olarak belirtilmelidir.

Güvenilir bir CA belirtirken, CA'nın ortak iksirini içeren bir ConfigMap oluşturun ve özelliğinde trustedCaCertificateConfigMap yapılandırma haritası adını belirtin. Örneğin:

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

MqttBridgeTopicMap'i yapılandırma

MqttBridgeTopicMap kaynağı, yerel ve uzak aracılar arasındaki konu eşlemesini tanımlar. MqttBridge Bağlan veya kaynağıyla birlikte kullanılmalıdır. Şu bileşenler bulunur:

  • Bağlanılacak MqttBridge Bağlan veya kaynağın adı.
  • Köprü oluşturma yollarının listesi.
  • İsteğe bağlı paylaşılan abonelik yapılandırması.

MqttBridge Bağlan or, onunla bağlantılı birden çok MqttBridgeTopic Haritalar kullanabilir. MqttBridge Bağlan or kaynağı dağıtıldığında Azure IoT MQ operatörü, ad alanını kendisiyle bağlantılı MqttBridgeTopic Haritalar için taramaya başlar ve MqttBridge Bağlan or örnekleri arasında ileti akışını otomatik olarak yönetir. Dağıtıldıktan sonra MqttBridgeTopicMap, MqttBridge Bağlan or ile bağlantılıdır. Her MqttBridgeTopicMap tek bir MqttBridge Bağlan or ile bağlanabilir.

Aşağıdaki örnekte, uzak konu başlığından yerel konuya remote-topic ileti köprü oluşturmaya yönelik bir MqttBridgeTopicMap yapılandırması gösterilmektedirlocal-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

Aşağıdaki tabloda MqttBridgeTopicMap kaynağındaki alanlar açıklanmaktadır:

Alanlar Zorunlu Açıklama
mqttBridge Bağlan orRef Yes Bağlanılacak kaynağın MqttBridgeConnector adı.
yollar Yes Köprü oluşturma yollarının listesi. Daha fazla bilgi için bkz . Yollar.

Rotalar

MqttBridgeTopicMap'in birden çok yolu olabilir. alanı routes , yolların listesini tanımlar. Aşağıdaki alanları içerir:

Alanlar Zorunlu Açıklama
yön Yes İleti akışının yönü. veya local-to-remoteolabilirremote-to-local. Daha fazla bilgi için bkz . Yön.
Adı Yes Yolun adı.
Qos Hayır MQTT hizmet kalitesi (QoS). Varsayılan değer 1'tir.
kaynak Yes Kaynak MQTT konusu. ve +gibi # joker karakterler olabilir. Kaynak konuda joker karakterler konusuna bakın.
hedef Hayır Hedef MQTT konusu. Joker karakterler olamaz. Belirtilmezse, kaynakla aynı olacaktır. Bkz. Hedefte başvuru kaynağı konusu.
sharedSubscription Hayır Paylaşılan abonelik yapılandırması. Ek ölçek için yapılandırılmış istemci sayısını etkinleştirir. Daha fazla bilgi için bkz . Paylaşılan abonelikler.

Yön

Örneğin, yön yerelden uzaka ise, Azure IoT MQ belirtilen yerel konudaki tüm iletileri uzak konuya yayımlar:

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

Yön tersine çevrilirse, Azure IoT MQ uzak bir aracıdan iletiler alır. Burada hedef atlanır ve uzak aracıdaki commands/factory konu başlığından gelen tüm iletiler aynı konuda yerel olarak yayımlanır.

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

Kaynak konuda joker karakterler

Statik olmayan konulardan köprü yapmak için, konu desenlerinin nasıl eşleşmesi gerektiğini ve konu adı çevirisinin kuralını tanımlamak için joker karakterler kullanın. Örneğin, altındaki telemetrytüm alt konulardaki tüm iletilerin köprülerini yapmak için çok düzeyli # joker karakteri kullanın:

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

Örnekte, bir ileti altında telemetrytelemetry/furnace/temperaturegibi herhangi bir konuya yayımlanırsa, Azure IoT MQ bunu statik factory/telemetry konu başlığı altındaki uzak köprülenmiş aracıda yayımlar.

Tek düzeyli konu joker karakteri için gibi telemetry/+/temperaturekullanın+.

MQTT köprüsü bağlayıcısı, herhangi bir belirsizlik olmadan uzak veya Azure IoT MQ'daki hedef aracıdaki konuyu tam olarak öğrenmelidir. Joker karakterler yalnızca konunun bir parçası source olarak kullanılabilir.

Hedefte başvuru kaynağı konusu

Kaynak konunun tamamına başvurmak için, rotadaki hedef konu yapılandırmasını tamamen atlar. Joker karakterler desteklenir.

Örneğin, veya gibi konu başlığı my-topic/#my-topic/foomy-topic/baraltında yayımlanan tüm iletilerde, aynı konu başlığı altında uzak aracıya köprü oluşturulur:

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

Kaynak konu başvurusunun diğer yöntemleri desteklenmez.

Paylaşılan abonelikler

alanı, sharedSubscription yol için paylaşılan abonelik yapılandırmasını tanımlar. Aşağıdaki alanları içerir:

Alanlar Zorunlu Açıklama
groupMinimumShareNumber Yes Paylaşılan abonelik için kullanılacak istemci sayısı.
groupName Yes Paylaşılan abonelik grubu adı.

Paylaşılan abonelikler, Azure IoT MQ'nin MQTT köprüsü için daha fazla istemci oluşturmasını sağlar. Her yol için farklı bir paylaşılan abonelik ayarlayabilirsiniz. Azure IoT MQ, kaynak konu başlığından iletilere abone olur ve hepsini bir kez deneme kullanarak bunları bir kerede bir istemciye gönderir. Ardından istemci, iletileri köprülenmiş aracıya yayımlar.

Örneğin, paylaşılan abonelikle bir yol ayarladıysanız ve 3 olarak ayarlarsanızgroupMinimumShareNumber:

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

Azure IoT MQ's MQTT köprüsü, kaç örnek olursa olsun üç abone istemcisi oluşturur. her iletiyi uygulamasından $share/sub-group/shared-sub-topicyalnızca bir istemci alır. Ardından, aynı istemci iletiyi konu başlığı remote/topicaltındaki köprülenmiş uzak aracıya yayımlar. Sonraki ileti bir sonraki istemciye gider.

Bu, köprü için ileti trafiğini farklı kimliklere sahip birden çok istemci arasında dengelemenize yardımcı olur. Köprülenmiş aracınız her istemcinin gönderebileceği ileti sayısını sınırlarsa bu yararlı olur.

Azure Event Grid MQTT aracısı desteği

Kimlik bilgisi yönetimini en aza indirmek için sistem tarafından atanan yönetilen kimliği ve Azure RBAC'yi kullanmak, Azure IoT MQ'yu Azure Event Grid'in MQTT aracı özelliğiyle köprü kurmanın önerilen yoludur.

Uçtan uca bir öğretici için bkz . Öğretici: Azure IoT MQ Preview ile Azure Event Grid arasında MQTT köprüsünü yapılandırma.

Yönetilen kimlikle Event Grid MQTT aracısına Bağlan

İlk olarak kullanarak az k8s-extension showAzure IoT MQ Arc uzantısının asıl kimliğini bulun. gibi abcd1234-5678-90ab-cdef-1234567890abgörünmesi gereken için identity.principalIdçıkış değerini not alın.

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

Ardından Azure CLI kullanarak rolleri Azure IoT MQ Arc uzantısı yönetilen kimliğine atayın . değerini önceki adımda bulduğunuz asıl kimlikle değiştirin <MQ_ID> . Örneğin, EventGrid TopicSpaces Yayımcı rolünü atamak için:

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>

İpucu

En düşük ayrıcalık ilkesini iyileştirmek için, rolü event grid ad alanının tamamı yerine bir konu alanına atayabilirsiniz. Daha fazla bilgi edinmek için bkz . Event Grid RBAC ve Konu alanları.

Son olarak, bir MQTTBridge Bağlan or oluşturun ve kimlik doğrulama yöntemi olarak yönetilen kimliği seçin. MqttBridgeTopic Haritalar oluşturun ve ile kubectlMQTT köprüsünü dağıtın.

Kimlik doğrulama adı başına en fazla istemci oturumu sayısı

değerinden yüksek ayarlanırsa bridgeInstances Event Grid MQTT aracısı Yapılandırma>Kimlik doğrulama adı başına en fazla istemci oturumu sayısını örnek sayısıyla eşleşecek şekilde yapılandırın.1 Bu yapılandırma, hata 151 kotası aşıldı gibi sorunları önler.

Bağlantı başına sınır

Yönetilen kimlik kullanmak mümkün değilse, kurulumunuzu tasarlarken Event Grid MQTT aracısının bağlantı başına sınırlarını göz önünde bulundurun. Yayımlama sırasında, bağlantının her yönü için sınır 100 ileti/saniyedir. MQTT köprüsü aktarım hızını artırmak için paylaşılan abonelikleri kullanarak her bir yola hizmet veren istemci sayısını artırın.

Başka bir aracıdan Azure IoT MQ Preview'a köprü

Azure IoT MQ uyumlu bir MQTT aracısıdır ve diğer aracılar uygun kimlik doğrulaması ve yetkilendirme kimlik bilgileriyle buna köprü oluşturabilir. Örneğin HiveMQ, VerneMQ, EMQX ve Mosquitto için MQTT köprüsü belgelerine bakın.