다음을 통해 공유


Azure IoT MQ Preview MQTT 브리지 클라우드 커넥터를 다른 MQTT 브로커에 연결

Important

Azure IoT 작업 미리 보기 - Azure Arc에서 지원되는 Azure IoT 작업은 현재 미리 보기로 제공됩니다. 프로덕션 환경에서는 이 미리 보기 소프트웨어를 사용하면 안 됩니다.

베타, 미리 보기로 제공되거나 아직 일반 공급으로 릴리스되지 않은 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 리소스(CRD)가 호출한 MqttBridgeConnectorMqttBridgeTopicMap으로 구성되어야 합니다. 이 가이드에서는 이러한 리소스를 사용하여 MQTT 브리지 커넥터를 만드는 방법을 안내합니다.

  1. MqttBridgeConnector 리소스를 정의하는 YAML 파일을 만듭니다. YAML 예제를 사용할 수 있지만 Azure IoT MQ가 배포된 것과 일치하도록 namespace를 변경하고 원격 브로커 엔드포인트 URL과 일치하도록 remoteBrokerConnection.endpoint를 변경합니다.

  2. MqttBridgeTopicMap 리소스를 정의하는 YAML 파일을 만듭니다. YAML 예제를 사용할 수 있지만 Azure IoT MQ가 배포된 것과 일치하도록 namespace를 변경하고 이전 단계에서 만든 MqttBridgeConnector 리소스의 이름과 일치하도록 mqttBridgeConnectorRef를 변경해야 합니다.

  3. kubectl apply -f <filename>을 사용하여 MQTT 브리지 커넥터 및 토픽 맵을 배포합니다.

    $ 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를 사용하여 메시지가 엔드포인트로 들어오고 나가기 시작하는지 확인합니다.

MqttBridgeConnector 구성

MqttBridgeConnector 리소스는 원격 브로커와 통신할 수 있는 MQTT 브리지 커넥터를 정의합니다. 여기에는 다음 구성 요소가 포함됩니다.

  • 하나 이상의 MQTT 브리지 커넥터 인스턴스. 각 인스턴스는 MQTT 브리지 커넥터를 실행하는 컨테이너입니다.
  • 원격 브로커 연결.
  • 선택적 로컬 브로커 연결.

다음 예제에서는 Azure Event Grid MQTT 브로커에 브리징하기 위한 예제 구성을 보여 줍니다. 인증 및 TLS 암호화를 위해 시스템이 할당한 관리 ID를 사용합니다.

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

다음 표에서는 MqttBridgeConnector 리소스의 필드에 대해 설명합니다.

필드 Required 설명
이미지 Kafka 커넥터의 이미지입니다. 이미지의 pullPolicy, repositorytag를 지정할 수 있습니다. 적절한 값은 이전 예제에 나와 있습니다.
프로토콜 MQTT 프로토콜 버전. v5 또는 v3일 수 있습니다. MQTT v3.1.1 지원을 참조하세요.
bridgeInstances 아니요 브리지 커넥터의 인스턴스 수입니다. 기본값은 1입니다. 인스턴스 수를 참조하세요.
clientIdPrefix 아니요 동적으로 생성된 클라이언트 ID의 접두사입니다. 기본값은 접두사를 사용하지 않는 것입니다. 클라이언트 ID 구성을 참조하세요.
logLevel 아니요 로그 수준. debug 또는 info일 수 있습니다. 기본값은 info입니다.
remoteBrokerConnection 브리지할 원격 브로커의 연결 세부 정보입니다. 원격 브로커 연결을 참조하세요.
localBrokerConnection 아니요 브리지할 로컬 브로커의 연결 세부 정보입니다. 기본값은 표시된 값입니다. 로컬 브로커 연결을 참조하세요.

MQTT v3.1.1 지원

브리지 커넥터는 Azure IoT MQ에 대한 로컬 브로커 연결 및 원격 브로커 연결과 함께 MQTT v3.1.1을 사용하도록 구성할 수 있습니다. 그러나 원격 브로커가 지원하지 않는 경우 공유 구독이 중단됩니다. 공유 구독을 사용하려는 경우 기본값인 v5로 둡니다.

인스턴스 수

고가용성 및 규모를 고려하여 여러 인스턴스를 사용하도록 MQTT 브리지 커넥터를 구성합니다. 메시지 흐름과 경로는 서로 다른 인스턴스 간에 자동으로 균형을 이루게 됩니다.

spec:
  bridgeInstances: 2

클라이언트 ID 구성

Azure IoT MQ는 지정한 접두사를 사용하여 각 MqttBridgeConnector 클라이언트에 대한 클라이언트 ID를 {clientIdPrefix}-{routeName} 형식으로 생성합니다. MQTT 사양은 클라이언트 ID당 하나의 연결만 허용하기 때문에 이 클라이언트 ID는 Azure IoT MQ에서 메시지 손실을 완화하고 기존 클라이언트 ID와의 충돌을 방지하는 데 중요합니다.

예를 들어 clientIdPrefix: "client-"와 토픽 맵에 두 개의 routes가 있는 경우 클라이언트 ID는 client-route1client-route2입니다.

원격 브로커 연결

remoteBrokerConnection 필드는 원격 브로커에 브리지하기 위한 연결 세부 정보를 정의합니다. 여기에는 다음 필드가 포함됩니다.

필드 Required 설명
endpoint 포트가 있는 원격 브로커 엔드포인트 URL입니다. 예: example.westeurope-1.ts.eventgrid.azure.net:8883.
tls 연결이 TLS 및 신뢰할 수 있는 CA 인증서로 암호화되는지를 지정합니다. TLS 지원을 참조하세요.
authentication 브로커와 함께 사용할 Azure IoT MQ에 대한 인증 세부 정보입니다. 값은 시스템이 할당한 관리 ID 또는 X.509 중 하나여야 합니다. 인증을 참조하세요.
프로토콜 아니요 WebSocket을 통해 MQTT 또는 MQTT를 사용하도록 정의하는 문자열 값입니다. mqtt 또는 webSocket일 수 있습니다. 기본값은 mqtt입니다.

인증

인증 필드는 원격 브로커와 함께 사용할 Azure IoT MQ에 대한 인증 방법을 정의합니다. 여기에는 다음 필드가 포함됩니다.

필드 Required 설명
systemAssignedManagedIdentity 아니요 시스템이 할당한 관리 ID로 인증합니다. 관리 ID를 참조하세요.
x509 아니요 X.509 인증서를 사용한 인증 세부 정보입니다. X.509를 참조하세요.

관리 ID

systemAssignedManagedIdentity 필드에는 다음 필드가 포함됩니다.

필드 Required 설명
대상 토큰의 대상 그룹입니다. 관리 ID를 사용하는 경우에 필요합니다. Event Grid의 경우 https://eventgrid.azure.net입니다.

Azure IoT MQ가 Azure Arc 확장으로 배포되는 경우 기본적으로 시스템이 할당한 관리 ID를 가져옵니다. Azure IoT MQ에 대한 관리 ID를 사용하여 Event Grid MQTT 브로커를 비롯한 Azure 리소스와 상호 작용해야 합니다. 이렇게 해야 자격 증명 관리를 방지하고 고가용성을 유지할 수 있기 때문입니다.

Azure 리소스 인증에 관리 ID를 사용하려면 먼저 Arc에서 제공하는 Azure IoT MQ의 관리 ID에 EventGrid TopicSpaces Publisher 같은 적절한 Azure RBAC 역할을 할당합니다.

그런 다음, 관리 ID를 사용하여 MQTTBridgeConnector를 인증 방법으로 지정합니다.

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

관리 ID를 사용하는 경우 클라이언트 ID는 구성할 수 없으며 Azure 내의 Azure IoT MQ Azure Arc 확장 Azure Resource Manager 리소스 ID와 동일합니다.

시스템이 할당한 관리 ID는 Azure Arc에서 제공합니다. 수동 복구 프로세스를 방지하려면 관리 ID와 연결된 인증서를 최소 90일마다 갱신해야 합니다. 자세히 알아보려면 만료된 Azure Arc 지원 Kubernetes 리소스를 해결하려면 어떻게 해야 하나요?를 참조하세요.

X.509

x509 필드에는 다음 필드가 포함되어 있습니다.

필드 Required 설명
secretName 클라이언트 인증서 및 프라이빗 키를 포함하는 Kubernetes TLS 비밀입니다. Azure Key Vault를 사용하여 Kubernetes 비밀 대신 Azure IoT MQ에 대한 비밀을 관리할 수 있습니다. 자세한 내용은 Azure Key Vault 또는 Kubernetes 비밀을 사용하여 비밀 관리를 참조하세요.

Event Grid와 같은 많은 MQTT 브로커는 X.509 인증을 지원합니다. Azure IoT MQ의 MQTT 브리지는 클라이언트 X.509 인증서를 제공하고 TLS 통신을 협상할 수 있습니다. Kubernetes 비밀을 사용하여 X.509 클라이언트 인증서, 프라이빗 키 및 중간 CA를 저장합니다.

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 필드는 로컬 브로커에 브리지하기 위한 연결 세부 정보를 정의합니다.

필드 Required 설명
endpoint 포트가 있는 원격 브로커 엔드포인트 URL입니다.
tls 연결이 TLS 및 신뢰할 수 있는 CA 인증서로 암호화되는지를 지정합니다. TLS 지원을 참조하세요.
authentication 브로커와 함께 사용할 Azure IoT MQ에 대한 인증 세부 정보입니다. 유일하게 지원되는 방법은 KUbernetes SAT(서비스 계정 토큰)입니다. SAT를 사용하려면 kubernetes: {}를 지정합니다.

기본적으로 IoT MQ는 TLS를 사용하도록 설정한 상태로 SAT 인증을 활용하여 네임스페이스 azure-iot-operations에 배포됩니다.

그런 다음 MqttBridgeConnector 로컬 브로커 연결 설정이 일치하도록 구성되어야 합니다. MqttBridgeConnector에 대한 배포 YAML은 remoteBrokerConnection과 동일한 수준에서 localBrokerConnection이(가) 있어야 합니다. 예를 들어 기본 IoT MQ 배포와 일치하도록 SAT 인증과 함께 TLS를 사용하려면 다음을 수행합니다.

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

여기서 trustedCaCertifcateName은(는) 원격 브로커 CA 루트에 대한 ConfigMap 같이 Azure IoT MQ의 루트 CA에 대한 ConfigMap입니다. 기본 루트 CA는 aio-ca-trust-bundle-test-only라는 ConfigMap에 저장됩니다.

루트 CA를 가져오는 방법에 대한 자세한 내용은 MQTT 통신을 보호하도록 자동 인증서 관리를 사용하여 TLS 구성을 참조하세요.

TLS 지원

tls 필드는 원격 또는 로컬 브로커 연결에 대한 TLS 구성을 정의합니다. 여기에는 다음 필드가 포함됩니다.

필드 Required 설명
tlsEnabled TLS를 사용할지 여부입니다.
trustedCaCertificateConfigMap 아니요 브로커에 연결할 때 신뢰할 CA 인증서입니다. TLS를 사용하는 경우에 필요합니다.

TLS 암호화는 원격 및 로컬 브로커 연결에 모두 지원됩니다.

  • 원격 브로커 연결의 경우: TLS를 사용하는 경우 신뢰할 수 있는 CA 인증서를 Kubernetes ConfigMap 참조로 지정해야 합니다. 그렇지 않은 경우 원격 엔드포인트를 널리 신뢰하지 않는 한 TLS 핸드셰이크가 실패할 수 있습니다. 신뢰할 수 있는 CA 인증서가 OS 인증서 저장소에 이미 있기 때문입니다. 예를 들어 Event Grid는 널리 신뢰할 수 있는 CA 루트를 사용하므로 지정할 필요가 없습니다.
  • 로컬(Azure IoT MQ) 브로커 연결의 경우: Azure IoT MQ 브로커 수신기에 TLS를 사용하도록 설정된 경우 수신기 서버 인증서를 발급한 CA 인증서를 Kubernetes ConfigMap 참조로 지정해야 합니다.

신뢰할 수 있는 CA를 지정해야 하는 경우 CA의 공용 부분을 포함하는 ConfigMap을 만들고 trustedCaCertificateConfigMap 속성에 configmap 이름을 지정합니다. 예시:

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

MqttBridgeTopicMap 구성

MqttBridgeTopicMap 리소스는 로컬 및 원격 브로커 간의 토픽 매핑을 정의합니다. MqttBridgeConnector 리소스와 함께 사용해야 합니다. 여기에는 다음 구성 요소가 포함됩니다.

  • 연결할 MqttBridgeConnector 리소스의 이름입니다.
  • 브리징을 위한 경로 목록입니다.
  • 선택적 공유 구독 구성입니다.

MqttBridgeConnector는 연결된 여러 MqttBridgeTopicMaps를 사용할 수 있습니다. MqttBridgeConnector 리소스가 배포되면 Azure IoT MQ 연산자는 연결된 MqttBridgeTopicMaps에 대한 네임스페이스 검사를 시작하고 MqttBridgeConnector 인스턴스 간에 메시지 흐름을 자동으로 관리합니다. 그런 다음 배포되면 MqttBridgeTopicMapMqttBridgeConnector와 연결됩니다. 각 MqttBridgeTopicMap은 하나의 MqttBridgeConnector와만 연결할 수 있습니다.

다음 예제에서는 원격 토픽 remote-topic의 메시지를 로컬 토픽 local-topic에 브리징하기 위한 MqttBridgeTopicMap 구성을 보여 줍니다.

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 리소스의 필드에 대해 설명합니다.

필드 Required 설명
mqttBridgeConnectorRef 연결하려는 MqttBridgeConnector 리소스의 이름입니다.
경로 브리징을 위한 경로 목록입니다. 자세한 내용은 경로를 참조하세요.

경로

MqttBridgeTopicMap에는 경로가 여러 개일 수 있습니다. routes 필드는 경로 목록을 정의합니다. 여기에는 다음 필드가 포함됩니다.

필드 Required 설명
direction 메시지 흐름의 방향입니다. remote-to-local 또는 local-to-remote일 수 있습니다. 자세한 내용은 방향을 참조하세요.
name 경로의 이름입니다.
qos 아니요 MQTT QoS(서비스 품질) 기본값은 1입니다.
source 원본 MQTT 토픽입니다. #+ 같은 와일드카드를 사용할 수 있습니다. 원본 토픽의 와일드카드를 참조하세요.
target 아니요 대상 MQTT 토픽입니다. 와일드카드를 사용할 수 없습니다. 지정하지 않으면 원본과 동일합니다. 대상의 원본 토픽 참조를 참조하세요.
sharedSubscription 아니요 공유 구독 구성입니다. 추가 크기 조정을 위해 구성된 수의 클라이언트를 활성화합니다. 자세한 내용은 공유 구성을 참조하세요.

방향

예를 들어 방향이 로컬-원격인 경우 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/furnace/temperature 같은 telemetry 아래에 있는 임의의 토픽에 메시지가 게시되면 Azure IoT MQ는 정적 factory/telemetry 토픽 아래에 있는 원격 브리지 브로커에 메시지를 게시합니다.

단일 수준 토픽 와일드카드의 경우 telemetry/+/temperature 같은 +를 대신 사용합니다.

MQTT 브리지 커넥터는 대상 브로커에서 원격 또는 Azure IoT MQ의 정확한 토픽을 모호함 없이 알고 있어야 합니다. 와일드카드는 source 토픽의 일부로만 사용할 수 있습니다.

대상의 원본 토픽 참조

전체 원본 토픽을 참조하려면 경로에서 대상 토픽 구성을 완전히 생략합니다. 와일드카드가 지원됩니다.

예를 들어 my-topic/foo 또는 my-topic/bar 같은 토픽 my-topic/# 아래에 게시된 모든 메시지는 동일한 토픽 아래의 원격 브로커에 브리지됩니다.

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

원본 토픽 참조의 다른 메서드는 지원되지 않습니다.

공유 구독

sharedSubscription 필드는 경로에 대한 공유 구독 구성을 정의합니다. 여기에는 다음 필드가 포함됩니다.

필드 Required 설명
groupMinimumShareNumber 공유 구독에 사용할 클라이언트 수입니다.
groupName 공유 구독 그룹 이름입니다.

공유 구독은 Azure IoT MQ가 MQTT 브리지에 대한 클라이언트를 더 많이 만드는 데 도움이 됩니다. 각 경로에 대해 다른 공유 구독을 설정할 수 있습니다. Azure IoT MQ는 원본 토픽의 메시지를 구독하고 라운드 로빈을 사용하여 한 번에 하나의 클라이언트로 보냅니다. 그런 다음 클라이언트는 브리지된 브로커에 메시지를 게시합니다.

예를 들어 공유 구독을 사용하여 경로를 설정하고 groupMinimumShareNumber3으로 설정합니다.

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

Azure IoT MQ의 MQTT 브리지는 인스턴스 수에 관계없이 3개의 구독자 클라이언트를 만듭니다. 하나의 클라이언트만 $share/sub-group/shared-sub-topic에서 각 메시지를 가져옵니다. 그런 다음 동일한 클라이언트가 토픽 remote/topic 아래에 있는 브리지된 원격 브로커에 메시지를 게시합니다. 다음 메시지는 다음 클라이언트로 이동합니다.

이렇게 하면 서로 다른 ID를 가진 여러 클라이언트 간에 브리지에 대한 메시지 트래픽의 균형을 맞출 수 있습니다. 이는 브리지된 브로커가 각 클라이언트에서 보낼 수 있는 메시지 수를 제한하는 경우에 유용합니다.

Azure Event Grid MQTT 브로커 지원

자격 증명 관리를 최소화하기 위해 시스템이 할당한 관리 ID 및 Azure RBAC를 사용하는 것이 Azure Event Grid의 MQTT 브로커 기능을 사용하여 Azure IoT MQ를 브리지하는 데 권장되는 방법입니다.

엔드투엔드 자습서는 자습서: Azure IoT MQ Preview와 Azure Event Grid 간에 MQTT 브리지 구성을 참조 하세요.

관리 ID를 사용하여 Event Grid MQTT 브로커에 연결

먼저, az k8s-extension show를 사용하여 Azure IoT MQ Arc 확장의 보안 주체 ID를 찾습니다. 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 확장 관리 ID에 역할을 할당합니다. <MQ_ID>를 이전 단계에서 찾은 보안 주체 ID로 바꿉니다. 예를 들어 EventGrid TopicSpaces 게시자 역할을 할당하려면 다음을 수행합니다.

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 네임스페이스 대신 토픽 공간에 역할을 할당할 수 있습니다. 자세히 알아보려면 Event Grid RBAC토픽 공간을 참조하세요.

마지막으로, MQTTBridgeConnector를 만들고 관리 ID를 인증 방법으로 지정합니다. MqttBridgeTopicMaps를 만들고 kubectl을 사용하여 MQTT 브리지를 배포합니다.

인증 이름당 최대 클라이언트 세션

bridgeInstances1보다 높게 설정된 경우 Event Grid MQTT 브로커 구성>인증 이름당 최대 클라이언트 세션이 인스턴스 수와 일치하도록 구성합니다. 이 구성은 오류 151 할당량이 초과하는 것과 같은 문제를 방지합니다.

연결당 제한

관리 ID를 사용할 수 없는 경우 설치를 디자인할 때 Event Grid MQTT 브로커에 대한 연결당 제한을 염두에 둡니다. 게시 시 한도는 연결 방향당 초당 100개의 메시지입니다. MQTT 브리지 처리량을 늘리려면 공유 구독을 사용하여 각 경로를 제공하는 클라이언트 수를 늘립니다.

다른 브로커에서 Azure IoT MQ 미리 보기로 브리지

Azure IoT MQ는 규격 MQTT 브로커이며 다른 브로커는 적절한 인증 및 권한 부여 자격 증명을 사용하여 이를 연결할 수 있습니다. 예를 들어 MQTT 브리지 설명서에서 HiveMQ, VerneMQ, EMQXMosquitto 관련 내용을 참조하세요.