MQTT 브리지 - AWS IoT Greengrass

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

MQTT 브리지

MQTT 브리지 구성 요소 (aws.greengrass.clientdevices.mqtt.Bridge) 는 클라이언트 장치, 로컬 Greengrass 게시/구독 및 간에 MQTT 메시지를 중계합니다. AWS IoT Core이 구성 요소를 사용하여 사용자 지정 구성 요소에서 클라이언트 장치의 MQTT 메시지를 처리하고 클라이언트 장치를 와 동기화할 수 있습니다. AWS 클라우드

참고

클라이언트 디바이스는 Greengrass 코어 디바이스에 연결하여 MQTT 메시지와 데이터를 전송하여 처리하는 로컬 IoT 디바이스입니다. 자세한 정보는 로컬 IoT 기기와 상호작용을 참조하세요.

이 구성 요소를 사용하여 다음 메시지 브로커 간에 메시지를 릴레이할 수 있습니다.

  • 로컬 MQTT — 로컬 MQTT 브로커는 클라이언트 디바이스와 코어 디바이스 간의 메시지를 처리합니다.

  • 로컬 게시/구독 — 로컬 Greengrass 메시지 브로커는 코어 디바이스의 구성 요소 간 메시지를 처리합니다. Greengrass 구성 요소에서 이러한 메시지와 상호 작용하는 방법에 대한 자세한 내용은 을 참조하십시오. 로컬 메시지 게시/구독

  • AWS IoT Core — AWS IoT Core MQTT 브로커는 IoT 장치와 AWS 클라우드 대상 간의 메시지를 처리합니다. Greengrass 구성 요소에서 이러한 메시지와 상호 작용하는 방법에 대한 자세한 내용은 을 참조하십시오. MQTT 메시지 게시/구독 AWS IoT Core

    참고

    클라이언트 장치가 QoS 0을 사용하여 로컬 MQTT 브로커를 게시하고 AWS IoT Core구독하는 경우에도 MQTT 브리지는 QoS 1을 사용하여 게시하고 구독합니다. 따라서 로컬 MQTT 브로커의 클라이언트 디바이스에서 MQTT 메시지를 릴레이할 때 추가 지연이 발생할 수 있습니다. AWS IoT Core코어 디바이스의 MQTT 컨피그레이션에 대한 자세한 내용은 을 참조하십시오. MQTT 타임아웃 및 캐시 설정을 구성합니다.

버전

이 구성 요소의 버전은 다음과 같습니다.

  • 2.3.x

  • 2.2.x

  • 2.1.x

  • 2.0.x

유형

이 구성 요소는 플러그인 구성 요소 () aws.greengrass.plugin 입니다. Greengrass 핵은 핵과 동일한 자바 가상 머신 (JVM) 에서 이 구성 요소를 실행합니다. 코어 디바이스에서 이 구성 요소의 버전을 변경하면 NUCLEUS가 다시 시작됩니다.

이 구성 요소는 Greengrass 핵과 동일한 로그 파일을 사용합니다. 자세한 정보는 모니터 AWS IoT Greengrass 로그을 참조하세요.

자세한 정보는 구성 요소 유형을 참조하세요.

운영 체제

이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.

  • Linux

  • Windows

요구 사항

이 구성 요소의 요구 사항은 다음과 같습니다.

  • 기본 포트 8883 이외의 포트를 사용하도록 코어 디바이스의 MQTT 브로커 구성 요소를 구성하는 경우 MQTT 브리지 v2.1.0 이상을 사용해야 합니다. 브로커가 작동하는 포트에 연결하도록 구성하십시오.

  • MQTT 브리지 구성 요소는 VPC에서 실행되도록 지원됩니다.

의존성

구성 요소를 배포하면 호환되는 버전의 종속 AWS IoT Greengrass 항목도 배포됩니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 해당 종속성에 대한 요구 사항을 모두 충족해야 합니다. 이 섹션에는 이 구성 요소의 릴리스된 버전에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 시맨틱 버전 제약 조건이 나열되어 있습니다. 콘솔에서 구성 요소의 각 버전에 대한 종속성을 볼 수도 있습니다.AWS IoT Greengrass 구성 요소 세부 정보 페이지에서 종속성 목록을 찾아보십시오.

2.3.2

다음 표에는 이 구성 요소의 버전 2.3.2에 대한 종속성이 나와 있습니다.

종속성 호환되는 버전 종속성 유형
클라이언트 디바이스 인증 >=2.2.0 <2.6.0 하드
2.3.0 and 2.3.1

다음 표에는 이 구성 요소의 버전 2.3.0 및 2.3.1에 대한 종속성이 나와 있습니다.

종속성 호환되는 버전 종속성 유형
클라이언트 디바이스 인증 >=2.2.0 <2.5.0 하드
2.2.5 and 2.2.6

다음 표에는 이 구성 요소의 버전 2.2.5 및 2.2.6에 대한 종속성이 나와 있습니다.

종속성 호환되는 버전 종속성 유형
클라이언트 디바이스 인증 >=2.2.0 <2.5.0 하드
2.2.3 and 2.2.4

다음 표에는 이 구성 요소의 버전 2.2.3 및 2.2.4에 대한 종속성이 나와 있습니다.

종속성 호환되는 버전 종속성 유형
클라이언트 디바이스 인증 >=2.2.0 <2.4.0 하드
2.2.0 – 2.2.2

다음 표에는 이 구성 요소의 버전 2.2.0~2.2.2에 대한 종속성이 나와 있습니다.

종속성 호환되는 버전 종속성 유형
클라이언트 디바이스 인증 >=2.2.0 <2.3.0 하드
2.1.1

다음 표에는 이 구성 요소의 버전 2.1.1에 대한 종속성이 나열되어 있습니다.

종속성 호환되는 버전 종속성 유형
클라이언트 디바이스 인증 >=2.0.0 <2.2.0 하드
2.0.0 to 2.1.0

다음 표에는 이 구성 요소의 버전 2.0.0~2.1.0에 대한 종속성이 나와 있습니다.

종속성 호환되는 버전 종속성 유형
클라이언트 디바이스 인증 >=2.0.0 <2.1.0 하드

구성 요소 종속성에 대한 자세한 내용은 구성 요소 레시피 참조를 참조하십시오.

구성

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음과 같은 구성 매개 변수를 제공합니다.

2.3.0 – 2.3.2
mqttTopicMapping

연결하려는 주제 매핑. 이 구성 요소는 소스 주제의 메시지를 구독하고 수신한 메시지를 대상 주제에 게시합니다. 각 주제 매핑은 주제, 원본 유형 및 대상 유형을 정의합니다.

이 객체에는 다음 정보가 포함되어 있어야 합니다.

topicMappingNameKey

이 주제 매핑의 이름. topicMappingName키를 이 주제 매핑을 식별하는 데 도움이 되는 이름으로 바꾸십시오.

이 객체에는 다음 정보가 포함되어 있어야 합니다.

topic

소스 브로커와 대상 브로커 사이를 연결하는 주제 또는 주제 필터.

+# MQTT 주제 와일드카드를 사용하여 주제 필터와 일치하는 모든 주제에 대한 메시지를 릴레이할 수 있습니다. 자세한 내용은 개발자 안내서의 MQTT 주제를 참조하십시오.AWS IoT Core

targetTopicPrefix

이 구성 요소가 메시지를 릴레이할 때 대상 주제에 추가할 접두사입니다.

source

소스 메시지 브로커. 다음 옵션 중 하나를 선택합니다.

  • LocalMqtt— 클라이언트 디바이스가 통신하는 로컬 MQTT 브로커입니다.

  • Pubsub— 현지 Greengrass 게시/구독 메시지 브로커.

  • IotCore— AWS IoT Core MQTT 메시지 브로커.

    참고

    클라이언트 장치가 QoS 0을 사용하여 로컬 MQTT 브로커를 게시하고 AWS IoT Core구독하는 경우에도 MQTT 브리지는 QoS 1을 사용하여 게시하고 구독합니다. 따라서 로컬 MQTT 브로커의 클라이언트 디바이스에서 MQTT 메시지를 릴레이할 때 추가 지연이 발생할 수 있습니다. AWS IoT Core코어 디바이스의 MQTT 컨피그레이션에 대한 자세한 내용은 을 참조하십시오. MQTT 타임아웃 및 캐시 설정을 구성합니다.

source그리고 target 달라야 합니다.

target

대상 메시지 브로커. 다음 옵션 중 하나를 선택합니다.

  • LocalMqtt— 클라이언트 디바이스가 통신하는 로컬 MQTT 브로커입니다.

  • Pubsub— 현지 Greengrass 게시/구독 메시지 브로커.

  • IotCore— AWS IoT Core MQTT 메시지 브로커.

    참고

    클라이언트 장치가 QoS 0을 사용하여 로컬 MQTT 브로커를 게시하고 AWS IoT Core구독하는 경우에도 MQTT 브리지는 QoS 1을 사용하여 게시하고 구독합니다. 따라서 로컬 MQTT 브로커의 클라이언트 디바이스에서 MQTT 메시지를 릴레이할 때 추가 지연이 발생할 수 있습니다. AWS IoT Core코어 디바이스의 MQTT 컨피그레이션에 대한 자세한 내용은 을 참조하십시오. MQTT 타임아웃 및 캐시 설정을 구성합니다.

source그리고 target 달라야 합니다.

mqtt5 RouteOptions

(선택 사항) 소스 주제에서 대상 주제로 메시지를 브리징하기 위한 주제 매핑을 구성하는 옵션을 제공합니다.

이 객체에는 다음 정보가 포함되어 있어야 합니다.

mqtt5 RouteOptionsNameKey

주제 매핑을 위한 경로 옵션의 이름. RouteOptionsNameKeymqtt5를 필드에 정의된 일치하는 topicMappingName키로 바꿉니다. mqttTopicMapping

이 객체에는 다음 정보가 포함되어 있어야 합니다.

노로컬

(선택 사항) 활성화된 경우 브리지는 브리지 자체에서 게시한 주제에 대한 메시지를 전달하지 않습니다. 이 방법을 사용하면 다음과 같이 루프를 방지할 수 있습니다.

{ "mqtt5RouteOptions": { "toIoTCore": { "noLocal": true } }, "mqttTopicMapping": { "toIoTCore": { "topic": "device", "source": "LocalMqtt", "target": "IotCore" }, "toLocal": { "topic": "device", "source": "IotCore", "target": "LocalMqtt" } } }

noLocal가 있는 라우트에만 지원됩니다LocalMqtt. source

기본값: false

retainAsPublished

(선택 사항) 활성화된 경우 브리지에서 전달된 메시지는 해당 경로에 대해 브로커에 게시된 메시지와 동일한 retain 플래그를 갖습니다.

retainAsPublished가 있는 라우트에서만 지원됩니다. source LocalMqtt

기본값: false

mqtt

(선택 사항) 로컬 브로커와 통신하기 위한 MQTT 프로토콜 설정.

version

(선택 사항) 브리지에서 로컬 브로커와 통신하는 데 사용하는 MQTT 프로토콜 버전입니다. 핵 구성에서 선택한 MQTT 버전과 동일해야 합니다.

다음 중에서 선택합니다.

  • mqtt3

  • mqtt5

mqttTopicMapping객체의 source 또는 target 필드가 로 설정된 경우 MQTT 브로커를 배포해야 합니다. LocalMqtt mqtt5옵션을 선택한 경우 를 사용해야 합니다. 맷 5 브로커 (EMQX)

기본값: mqtt3

ackTimeoutSeconds

(선택 사항) 작업이 실패하기 전에 PUBACK, SUBACK 또는 UNSUBACK 패킷을 기다리는 시간 간격.

기본값: 60

connAckTimeout밀리초

(선택 사항) 연결을 종료하기 전에 CONNACK 패킷을 기다리는 시간 간격

기본값: 20000 (20초)

pingTimeoutMs

(선택 사항) 브리지가 로컬 브로커로부터 PINGACK 메시지를 수신할 때까지 기다리는 시간 (밀리초). 대기 시간이 제한 시간을 초과하면 브리지가 닫히고 MQTT 연결이 다시 열립니다. 이 값은 다음보다 작아야 합니다. keepAliveTimeoutSeconds

기본값: 30000 (30초)

keepAliveTimeout초

(선택 사항) MQTT 연결을 유지하기 위해 브리지가 전송하는 각 PING 메시지 사이의 시간 (초) 입니다. 이 값은 보다 pingTimeoutMs 커야 합니다.

기본값: 60

maxReconnectDelayMs

(선택 사항) MQTT가 다시 연결되는 데 걸리는 최대 시간 (초) 입니다.

기본값: 30000 (30초)

minReconnectDelayMs

(선택 사항) MQTT가 다시 연결되는 데 걸리는 최소 시간 (초) 입니다.

최대 수신

(선택 사항) 브리지가 전송할 수 있는 승인되지 않은 QoS1 패킷의 최대 수입니다.

기본값: 100

maximumPacketSize

클라이언트가 MQTT 패킷에 허용하는 최대 바이트 수입니다.

기본값: null (제한 없음)

sessionExpiryInterval

(선택 사항) 브리지와 로컬 브로커 간에 세션이 지속되도록 요청할 수 있는 시간 (초).

기본값: 4294967295 (세션은 만료되지 않음)

brokerUri

(선택 사항) 로컬 MQTT 브로커의 URI입니다. MQTT 브로커가 기본 포트 8883이 아닌 다른 포트를 사용하도록 구성하는 경우 이 매개 변수를 지정해야 합니다. 다음 형식을 사용하고 포트를 MQTT 브로커가 작동하는 포트로 교체하십시오. ssl://localhost:port

기본값: ssl://localhost:8883

startupTimeoutSeconds

(선택 사항) 구성 요소를 시작하는 데 걸리는 최대 시간 (초). 이 제한 시간을 BROKEN 초과하면 구성 요소의 상태가 로 변경됩니다.

기본값: 120

예: 구성 병합 업데이트

다음 예제 구성 업데이트는 다음을 지정합니다.

  • 클라이언트 장치의 메시지를 clients/+/hello/world 주제 필터와 일치하는 AWS IoT Core 주제로 릴레이합니다.

  • 주제 필터와 일치하는 주제에 대해 클라이언트 장치의 메시지를 로컬 게시/구독으로 중계하고 대상 clients/+/detections 주제에 events/input/ 접두사를 추가합니다. 결과 대상 주제는 주제 필터와 일치합니다. events/input/clients/+/detections

  • 클라이언트 장치의 메시지를 주제 필터와 일치하는 주제로 전달하고 대상 clients/+/status 주제에 $aws/rules/StatusUpdateRule/ 접두사를 추가합니다. AWS IoT Core 이 예제에서는 Basic Ingest를 사용하여 비용을 절감하기 StatusUpdateRule 위해 이름이 지정된 AWS IoT 규칙에 이러한 메시지를 직접 전달합니다.

{ "mqttTopicMapping": { "ClientDeviceHelloWorld": { "topic": "clients/+/hello/world", "source": "LocalMqtt", "target": "IotCore" }, "ClientDeviceEvents": { "topic": "clients/+/detections", "targetTopicPrefix": "events/input/", "source": "LocalMqtt", "target": "Pubsub" }, "ClientDeviceCloudStatusUpdate": { "topic": "clients/+/status", "targetTopicPrefix": "$aws/rules/StatusUpdateRule/", "source": "LocalMqtt", "target": "IotCore" } } }
예: MQTT 5 구성

다음 예제 컨피그레이션은 다음을 업데이트합니다.

  • 브리지가 로컬 브로커와 함께 MQTT 5 프로토콜을 사용할 수 있도록 합니다.

  • MQTT retain을 주제 매핑을 위한 게시된 설정으로 구성합니다. ClientDeviceHelloWorld

{ "mqttTopicMapping": { "ClientDeviceHelloWorld": { "topic": "clients/+/hello/world", "source": "LocalMqtt", "target": "IotCore" } }, "mqtt5RouteOptions": { "ClientDeviceHelloWorld": { "retainAsPublished": true } }, "mqtt": { "version": "mqtt5" } }
2.2.6
mqttTopicMapping

연결하려는 주제 매핑. 이 구성 요소는 소스 주제의 메시지를 구독하고 수신한 메시지를 대상 주제에 게시합니다. 각 주제 매핑은 주제, 원본 유형 및 대상 유형을 정의합니다.

이 객체에는 다음 정보가 포함되어 있어야 합니다.

topicMappingNameKey

이 주제 매핑의 이름. topicMappingName키를 이 주제 매핑을 식별하는 데 도움이 되는 이름으로 바꾸십시오.

이 객체에는 다음 정보가 포함되어 있어야 합니다.

topic

소스 브로커와 대상 브로커 사이를 연결하는 주제 또는 주제 필터.

+# MQTT 주제 와일드카드를 사용하여 주제 필터와 일치하는 모든 주제에 대한 메시지를 릴레이할 수 있습니다. 자세한 내용은 개발자 안내서의 MQTT 주제를 참조하십시오.AWS IoT Core

targetTopicPrefix

이 구성 요소가 메시지를 릴레이할 때 대상 주제에 추가할 접두사입니다.

source

소스 메시지 브로커. 다음 옵션 중 하나를 선택합니다.

  • LocalMqtt— 클라이언트 디바이스가 통신하는 로컬 MQTT 브로커입니다.

  • Pubsub— 현지 Greengrass 게시/구독 메시지 브로커.

  • IotCore— AWS IoT Core MQTT 메시지 브로커.

    참고

    클라이언트 장치가 QoS 0을 사용하여 로컬 MQTT 브로커를 게시하고 AWS IoT Core구독하는 경우에도 MQTT 브리지는 QoS 1을 사용하여 게시하고 구독합니다. 따라서 로컬 MQTT 브로커의 클라이언트 디바이스에서 MQTT 메시지를 릴레이할 때 추가 지연이 발생할 수 있습니다. AWS IoT Core코어 디바이스의 MQTT 컨피그레이션에 대한 자세한 내용은 을 참조하십시오. MQTT 타임아웃 및 캐시 설정을 구성합니다.

source그리고 target 달라야 합니다.

target

대상 메시지 브로커. 다음 옵션 중 하나를 선택합니다.

  • LocalMqtt— 클라이언트 디바이스가 통신하는 로컬 MQTT 브로커입니다.

  • Pubsub— 현지 Greengrass 게시/구독 메시지 브로커.

  • IotCore— AWS IoT Core MQTT 메시지 브로커.

    참고

    클라이언트 장치가 QoS 0을 사용하여 로컬 MQTT 브로커를 게시하고 AWS IoT Core구독하는 경우에도 MQTT 브리지는 QoS 1을 사용하여 게시하고 구독합니다. 따라서 로컬 MQTT 브로커의 클라이언트 디바이스에서 MQTT 메시지를 릴레이할 때 추가 지연이 발생할 수 있습니다. AWS IoT Core코어 디바이스의 MQTT 컨피그레이션에 대한 자세한 내용은 을 참조하십시오. MQTT 타임아웃 및 캐시 설정을 구성합니다.

source그리고 target 달라야 합니다.

brokerUri

(선택 사항) 로컬 MQTT 브로커의 URI입니다. MQTT 브로커가 기본 포트 8883이 아닌 다른 포트를 사용하도록 구성하는 경우 이 매개 변수를 지정해야 합니다. 다음 형식을 사용하고 포트를 MQTT 브로커가 작동하는 포트로 교체하십시오. ssl://localhost:port

기본값: ssl://localhost:8883

startupTimeoutSeconds

(선택 사항) 구성 요소를 시작하는 데 걸리는 최대 시간 (초). 이 제한 시간을 BROKEN 초과하면 구성 요소의 상태가 로 변경됩니다.

기본값: 120

예: 구성 병합 업데이트

다음 예제 구성 업데이트는 다음을 지정합니다.

  • 클라이언트 장치의 메시지를 clients/+/hello/world 주제 필터와 일치하는 AWS IoT Core 주제로 릴레이합니다.

  • 주제 필터와 일치하는 주제에 대해 클라이언트 장치의 메시지를 로컬 게시/구독으로 중계하고 대상 clients/+/detections 주제에 events/input/ 접두사를 추가합니다. 결과 대상 주제는 주제 필터와 일치합니다. events/input/clients/+/detections

  • 클라이언트 장치의 메시지를 주제 필터와 일치하는 주제로 전달하고 대상 clients/+/status 주제에 $aws/rules/StatusUpdateRule/ 접두사를 추가합니다. AWS IoT Core 이 예제에서는 Basic Ingest를 사용하여 비용을 절감하기 StatusUpdateRule 위해 이름이 지정된 AWS IoT 규칙에 이러한 메시지를 직접 전달합니다.

{ "mqttTopicMapping": { "ClientDeviceHelloWorld": { "topic": "clients/+/hello/world", "source": "LocalMqtt", "target": "IotCore" }, "ClientDeviceEvents": { "topic": "clients/+/detections", "targetTopicPrefix": "events/input/", "source": "LocalMqtt", "target": "Pubsub" }, "ClientDeviceCloudStatusUpdate": { "topic": "clients/+/status", "targetTopicPrefix": "$aws/rules/StatusUpdateRule/", "source": "LocalMqtt", "target": "IotCore" } } }
2.2.0 - 2.2.5
mqttTopicMapping

연결하려는 주제 매핑. 이 구성 요소는 소스 주제의 메시지를 구독하고 수신한 메시지를 대상 주제에 게시합니다. 각 주제 매핑은 주제, 원본 유형 및 대상 유형을 정의합니다.

이 객체에는 다음 정보가 포함되어 있어야 합니다.

topicMappingNameKey

이 주제 매핑의 이름. topicMappingName키를 이 주제 매핑을 식별하는 데 도움이 되는 이름으로 바꾸십시오.

이 객체에는 다음 정보가 포함되어 있어야 합니다.

topic

소스 브로커와 대상 브로커 사이를 연결하는 주제 또는 주제 필터.

+# MQTT 주제 와일드카드를 사용하여 주제 필터와 일치하는 모든 주제에 대한 메시지를 릴레이할 수 있습니다. 자세한 내용은 개발자 안내서의 MQTT 주제를 참조하십시오.AWS IoT Core

targetTopicPrefix

이 구성 요소가 메시지를 릴레이할 때 대상 주제에 추가할 접두사입니다.

source

소스 메시지 브로커. 다음 옵션 중 하나를 선택합니다.

  • LocalMqtt— 클라이언트 디바이스가 통신하는 로컬 MQTT 브로커입니다.

  • Pubsub— 현지 Greengrass 게시/구독 메시지 브로커.

  • IotCore— AWS IoT Core MQTT 메시지 브로커.

    참고

    클라이언트 장치가 QoS 0을 사용하여 로컬 MQTT 브로커를 게시하고 AWS IoT Core구독하는 경우에도 MQTT 브리지는 QoS 1을 사용하여 게시하고 구독합니다. 따라서 로컬 MQTT 브로커의 클라이언트 디바이스에서 MQTT 메시지를 릴레이할 때 추가 지연이 발생할 수 있습니다. AWS IoT Core코어 디바이스의 MQTT 컨피그레이션에 대한 자세한 내용은 을 참조하십시오. MQTT 타임아웃 및 캐시 설정을 구성합니다.

source그리고 target 달라야 합니다.

target

대상 메시지 브로커. 다음 옵션 중 하나를 선택합니다.

  • LocalMqtt— 클라이언트 디바이스가 통신하는 로컬 MQTT 브로커입니다.

  • Pubsub— 현지 Greengrass 게시/구독 메시지 브로커.

  • IotCore— AWS IoT Core MQTT 메시지 브로커.

    참고

    클라이언트 장치가 QoS 0을 사용하여 로컬 MQTT 브로커를 게시하고 AWS IoT Core구독하는 경우에도 MQTT 브리지는 QoS 1을 사용하여 게시하고 구독합니다. 따라서 로컬 MQTT 브로커의 클라이언트 디바이스에서 MQTT 메시지를 릴레이할 때 추가 지연이 발생할 수 있습니다. AWS IoT Core코어 디바이스의 MQTT 컨피그레이션에 대한 자세한 내용은 을 참조하십시오. MQTT 타임아웃 및 캐시 설정을 구성합니다.

source그리고 target 달라야 합니다.

brokerUri

(선택 사항) 로컬 MQTT 브로커의 URI입니다. MQTT 브로커가 기본 포트 8883이 아닌 다른 포트를 사용하도록 구성하는 경우 이 매개 변수를 지정해야 합니다. 다음 형식을 사용하고 포트를 MQTT 브로커가 작동하는 포트로 교체하십시오. ssl://localhost:port

기본값: ssl://localhost:8883

예: 구성 병합 업데이트

다음 예제 구성 업데이트는 다음을 지정합니다.

  • 클라이언트 장치의 메시지를 clients/+/hello/world 주제 필터와 일치하는 AWS IoT Core 주제로 릴레이합니다.

  • 주제 필터와 일치하는 주제에 대해 클라이언트 장치의 메시지를 로컬 게시/구독으로 중계하고 대상 clients/+/detections 주제에 events/input/ 접두사를 추가합니다. 결과 대상 주제는 주제 필터와 일치합니다. events/input/clients/+/detections

  • 클라이언트 장치의 메시지를 주제 필터와 일치하는 주제로 전달하고 대상 clients/+/status 주제에 $aws/rules/StatusUpdateRule/ 접두사를 추가합니다. AWS IoT Core 이 예제에서는 Basic Ingest를 사용하여 비용을 절감하기 StatusUpdateRule 위해 이름이 지정된 AWS IoT 규칙에 이러한 메시지를 직접 전달합니다.

{ "mqttTopicMapping": { "ClientDeviceHelloWorld": { "topic": "clients/+/hello/world", "source": "LocalMqtt", "target": "IotCore" }, "ClientDeviceEvents": { "topic": "clients/+/detections", "targetTopicPrefix": "events/input/", "source": "LocalMqtt", "target": "Pubsub" }, "ClientDeviceCloudStatusUpdate": { "topic": "clients/+/status", "targetTopicPrefix": "$aws/rules/StatusUpdateRule/", "source": "LocalMqtt", "target": "IotCore" } } }
2.1.x
mqttTopicMapping

연결하려는 주제 매핑. 이 구성 요소는 소스 주제의 메시지를 구독하고 수신한 메시지를 대상 주제에 게시합니다. 각 주제 매핑은 주제, 원본 유형 및 대상 유형을 정의합니다.

이 객체에는 다음 정보가 포함되어 있어야 합니다.

topicMappingNameKey

이 주제 매핑의 이름. topicMappingName키를 이 주제 매핑을 식별하는 데 도움이 되는 이름으로 바꾸십시오.

이 객체에는 다음 정보가 포함되어 있어야 합니다.

topic

소스 브로커와 대상 브로커 사이를 연결하는 주제 또는 주제 필터.

LocalMqttor IotCore 소스 브로커를 지정하는 경우 +# MQTT 주제 와일드카드를 사용하여 주제 필터와 일치하는 모든 주제에 대한 메시지를 릴레이할 수 있습니다. 자세한 내용은 개발자 안내서의 MQTT 주제를 참조하십시오.AWS IoT Core

source

소스 메시지 브로커. 다음 옵션 중 하나를 선택합니다.

  • LocalMqtt— 클라이언트 디바이스가 통신하는 로컬 MQTT 브로커입니다.

  • Pubsub— 현지 Greengrass 게시/구독 메시지 브로커.

  • IotCore— AWS IoT Core MQTT 메시지 브로커.

    참고

    클라이언트 장치가 QoS 0을 사용하여 로컬 MQTT 브로커를 게시하고 AWS IoT Core구독하는 경우에도 MQTT 브리지는 QoS 1을 사용하여 게시하고 구독합니다. 따라서 로컬 MQTT 브로커의 클라이언트 디바이스에서 MQTT 메시지를 릴레이할 때 추가 지연이 발생할 수 있습니다. AWS IoT Core코어 디바이스의 MQTT 컨피그레이션에 대한 자세한 내용은 을 참조하십시오. MQTT 타임아웃 및 캐시 설정을 구성합니다.

source그리고 target 달라야 합니다.

target

대상 메시지 브로커. 다음 옵션 중 하나를 선택합니다.

  • LocalMqtt— 클라이언트 디바이스가 통신하는 로컬 MQTT 브로커입니다.

  • Pubsub— 현지 Greengrass 게시/구독 메시지 브로커.

  • IotCore— AWS IoT Core MQTT 메시지 브로커.

    참고

    클라이언트 장치가 QoS 0을 사용하여 로컬 MQTT 브로커를 게시하고 AWS IoT Core구독하는 경우에도 MQTT 브리지는 QoS 1을 사용하여 게시하고 구독합니다. 따라서 로컬 MQTT 브로커의 클라이언트 디바이스에서 MQTT 메시지를 릴레이할 때 추가 지연이 발생할 수 있습니다. AWS IoT Core코어 디바이스의 MQTT 컨피그레이션에 대한 자세한 내용은 을 참조하십시오. MQTT 타임아웃 및 캐시 설정을 구성합니다.

source그리고 target 달라야 합니다.

brokerUri

(선택 사항) 로컬 MQTT 브로커의 URI입니다. MQTT 브로커가 기본 포트 8883이 아닌 다른 포트를 사용하도록 구성하는 경우 이 매개 변수를 지정해야 합니다. 다음 형식을 사용하고 포트를 MQTT 브로커가 작동하는 포트로 교체하십시오. ssl://localhost:port

기본값: ssl://localhost:8883

예: 구성 병합 업데이트

다음 예제 구성 업데이트는 클라이언트 장치의 메시지를 clients/MyClientDevice1/hello/worldclients/MyClientDevice2/hello/world 항목으로 릴레이하도록 AWS IoT Core 지정합니다.

{ "mqttTopicMapping": { "ClientDevice1HelloWorld": { "topic": "clients/MyClientDevice1/hello/world", "source": "LocalMqtt", "target": "IotCore" }, "ClientDevice2HelloWorld": { "topic": "clients/MyClientDevice2/hello/world", "source": "LocalMqtt", "target": "IotCore" } } }
2.0.x
mqttTopicMapping

연결하려는 주제 매핑. 이 구성 요소는 소스 주제의 메시지를 구독하고 수신한 메시지를 대상 주제에 게시합니다. 각 주제 매핑은 주제, 원본 유형 및 대상 유형을 정의합니다.

이 객체에는 다음 정보가 포함되어 있어야 합니다.

topicMappingNameKey

이 주제 매핑의 이름. topicMappingName키를 이 주제 매핑을 식별하는 데 도움이 되는 이름으로 바꾸십시오.

이 객체에는 다음 정보가 포함되어 있어야 합니다.

topic

소스 브로커와 대상 브로커 사이를 연결하는 주제 또는 주제 필터.

LocalMqttor IotCore 소스 브로커를 지정하는 경우 +# MQTT 주제 와일드카드를 사용하여 주제 필터와 일치하는 모든 주제에 대한 메시지를 릴레이할 수 있습니다. 자세한 내용은 개발자 안내서의 MQTT 주제를 참조하십시오.AWS IoT Core

source

소스 메시지 브로커. 다음 옵션 중 하나를 선택합니다.

  • LocalMqtt— 클라이언트 디바이스가 통신하는 로컬 MQTT 브로커입니다.

  • Pubsub— 현지 Greengrass 게시/구독 메시지 브로커.

  • IotCore— AWS IoT Core MQTT 메시지 브로커.

    참고

    클라이언트 장치가 QoS 0을 사용하여 로컬 MQTT 브로커를 게시하고 AWS IoT Core구독하는 경우에도 MQTT 브리지는 QoS 1을 사용하여 게시하고 구독합니다. 따라서 로컬 MQTT 브로커의 클라이언트 디바이스에서 MQTT 메시지를 릴레이할 때 추가 지연이 발생할 수 있습니다. AWS IoT Core코어 디바이스의 MQTT 컨피그레이션에 대한 자세한 내용은 을 참조하십시오. MQTT 타임아웃 및 캐시 설정을 구성합니다.

source그리고 target 달라야 합니다.

target

대상 메시지 브로커. 다음 옵션 중 하나를 선택합니다.

  • LocalMqtt— 클라이언트 디바이스가 통신하는 로컬 MQTT 브로커입니다.

  • Pubsub— 현지 Greengrass 게시/구독 메시지 브로커.

  • IotCore— AWS IoT Core MQTT 메시지 브로커.

    참고

    클라이언트 장치가 QoS 0을 사용하여 로컬 MQTT 브로커를 게시하고 AWS IoT Core구독하는 경우에도 MQTT 브리지는 QoS 1을 사용하여 게시하고 구독합니다. 따라서 로컬 MQTT 브로커의 클라이언트 디바이스에서 MQTT 메시지를 릴레이할 때 추가 지연이 발생할 수 있습니다. AWS IoT Core코어 디바이스의 MQTT 컨피그레이션에 대한 자세한 내용은 을 참조하십시오. MQTT 타임아웃 및 캐시 설정을 구성합니다.

source그리고 target 달라야 합니다.

예: 구성 병합 업데이트

다음 예제 구성 업데이트는 클라이언트 장치의 메시지를 clients/MyClientDevice1/hello/worldclients/MyClientDevice2/hello/world 항목으로 릴레이하도록 AWS IoT Core 지정합니다.

{ "mqttTopicMapping": { "ClientDevice1HelloWorld": { "topic": "clients/MyClientDevice1/hello/world", "source": "LocalMqtt", "target": "IotCore" }, "ClientDevice2HelloWorld": { "topic": "clients/MyClientDevice2/hello/world", "source": "LocalMqtt", "target": "IotCore" } } }

로컬 로그 파일

이 구성 요소는 Greengrass 핵 구성 요소와 동일한 로그 파일을 사용합니다.

Linux
/greengrass/v2/logs/greengrass.log
Windows
C:\greengrass\v2\logs\greengrass.log
이 구성 요소의 로그를 보려면
  • 코어 기기에서 다음 명령을 실행하여 이 구성 요소의 로그 파일을 실시간으로 확인합니다. /greengrass/v2또는 C:\greengrass\v2 를 AWS IoT Greengrass 루트 폴더 경로로 바꿉니다.

    Linux
    sudo tail -f /greengrass/v2/logs/greengrass.log
    Windows (PowerShell)
    Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait

Changelog

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.

버전

변경

2.3.2

클라이언트 장치 인증 버전 2.5.0 릴리스용으로 버전이 업데이트되었습니다.

2.3.1
버그 수정 및 개선

로컬 MQTT 클라이언트가 연결 해제 루프에 빠지는 문제를 수정합니다.

2.3.0
새로운 기능

로컬 MQTT AWS IoT Core 소스와 로컬 MQTT 소스 간의 브리징을 위한 MQTT5 지원을 추가합니다.

2.2.6

새로운 기능

startupTimeoutSeconds 구성 옵션을 추가합니다.

2.2.5

클라이언트 장치 인증 버전 2.4.0 릴리스용으로 버전이 업데이트되었습니다.

2.2.4

Greengrass 클라이언트 장치 인증 버전 2.3.0 릴리스에 대한 버전이 업데이트되었습니다.

2.2.3

이 버전에는 버그 수정 및 개선 사항이 포함되어 있습니다.

2.2.2

버그 수정 및 개선
  • 로깅 조정.

2.2.1

버그 수정 및 개선

MQTT 브리지에서 MQTT 주제를 구독하지 못하는 문제가 수정되었습니다.

2.2.0

새로운 기능

2.1.1

버그 수정 및 개선
  • 이 구성 요소가 구성 재설정 업데이트를 처리하는 방식과 관련된 문제를 수정합니다.

  • 인증서가 교체될 때 MQTT 클라이언트 연결이 끊기는 빈도를 줄입니다.

2.1.0

새로운 기능
  • 기본이 아닌 MQTT 브로커 포트를 사용할 수 있는 brokerUri 매개 변수를 추가합니다.

2.0.1

이 버전에는 버그 수정 및 개선 사항이 포함되어 있습니다.

2.0.0

초기 버전