클라이언트 디바이스와 AWS IoT Core 간에 MQTT 메시지 전달 - AWS IoT Greengrass

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

클라이언트 디바이스와 AWS IoT Core 간에 MQTT 메시지 전달

클라이언트 디바이스와 AWS IoT Core 간에 MQTT 메시지 및 기타 데이터를 전달할 수 있습니다. 클라이언트 디바이스는 코어 디바이스에서 실행되는 MQTT 브로커 구성 요소에 연결합니다. 기본적으로 코어 디바이스는 클라이언트 디바이스와 AWS IoT Core 간에 MQTT 메시지나 데이터를 전달하지 않습니다. 클라이언트 디바이스는 기본적으로 MQTT를 통해서만 서로 통신할 수 있습니다.

클라이언트 디바이스와 AWS IoT Core 간에 MQTT 메시지를 전달하려면 다음을 수행하도록 MQTT 브리지 구성 요소를 구성합니다.

  • 클라이언트 디바이스의 메시지를 AWS IoT Core로 전달합니다.

  • AWS IoT Core에서 클라이언트 디바이스로 메시지를 전달합니다.

참고

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

MQTT 브리지 구성 요소 구성 및 배포

MQTT 브리지 구성 요소는 각각 메시지 소스와 메시지 대상을 지정하는 주제 매핑의 목록을 사용합니다. 클라이언트 디바이스와 AWS IoT Core 간에 메시지를 전달하려면 MQTT 브리지 구성 요소를 배포하고 구성 요소 구성에서 각 소스와 대상 주제를 지정합니다.

코어 디바이스 또는 코어 디바이스 그룹에 MQTT 브리지 구성 요소를 배포하려면 aws.greengrass.clientdevices.mqtt.Bridge 구성 요소가 포함된 배포를 생성합니다. 배포의 MQTT 브리지 구성 요소 구성에서 주제 매핑(mqttTopicMapping)을 지정합니다.

다음 예제에서는 클라이언트 디바이스에서 clients/+/hello/world 주제 필터와 일치하는 토픽에 대한 메시지를 AWS IoT Core로 전달하도록 MQTT 브리지 구성 요소를 구성하는 배포를 정의합니다. merge 구성 업데이트에는 직렬화된 JSON 객체가 필요합니다. 자세한 내용은 구성 요소 구성 업데이트 섹션을 참조하세요.

Console
{ "mqttTopicMapping": { "HelloWorldIotCore": { "topic": "clients/+/hello/world", "source": "LocalMqtt", "target": "IotCore" } } }
AWS CLI
{ "components": { "aws.greengrass.clientdevices.mqtt.Bridge": { "version": "2.0.0", "configurationUpdate": { "merge": "{\"mqttTopicMapping\":{\"HelloWorldIotCore\":{\"topic"\:\"clients/+/hello/world\",\"source\":\"LocalMqtt\",\"target\":\"IotCore\"}}}" } } ... } }

MQTT 메시지 전달

클라이언트 디바이스와 AWS IoT Core 간에 MQTT 메시지를 전달하려면 MQTT 브리지 구성 요소를 구성 및 배포하고 전달할 주제를 지정합니다.

예: 클라이언트 디바이스에서 AWS IoT Core로 주제에 대한 메시지 전달

다음 MQTT 브리지 구성 요소 구성은 클라이언트 디바이스에서 clients/+/hello/world/event 주제 필터와 일치하는 주제에 대한 메시지를 AWS IoT Core로 전달하도록 지정합니다.

{ "mqttTopicMapping": { "HelloWorldEvent": { "topic": "clients/+/hello/world/event", "source": "LocalMqtt", "target": "IotCore" } } }
예: AWS IoT Core에서 클라이언트 디바이스로 주제에 대한 메시지 전달

다음 MQTT 브리지 구성 요소 구성은 AWS IoT Core에서 clients/+/hello/world/event/response 주제 필터와 일치하는 주제에 대한 메시지를 클라이언트 디바이스로 전달하도록 지정합니다.

{ "mqttTopicMapping": { "HelloWorldEventConfirmation": { "topic": "clients/+/hello/world/event/response", "source": "IotCore", "target": "LocalMqtt" } } }