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.
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
namespace
remoteBrokerConnection.endpoint
emin olun.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ğinizdennamespace
emin olun.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 , repository ve 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 secretName
baş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 remoteBrokerConnection
aynı 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-only
bir 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-remote olabilirremote-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 telemetry
tü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 telemetry
telemetry/furnace/temperature
gibi 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/+/temperature
kullanı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/foo
my-topic/bar
altı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-topic
yalnızca bir istemci alır. Ardından, aynı istemci iletiyi konu başlığı remote/topic
altı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 show
Azure IoT MQ Arc uzantısının asıl kimliğini bulun. gibi abcd1234-5678-90ab-cdef-1234567890ab
gö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 kubectl
MQTT 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.