구성 요소에서 클라이언트 장치와 상호 작용 - AWS IoT Greengrass

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

구성 요소에서 클라이언트 장치와 상호 작용

코어 장치에 연결된 클라이언트 장치와 상호 작용하는 사용자 지정 Greengrass 구성 요소를 개발할 수 있습니다. 예를 들어, 다음을 수행하는 구성 요소를 개발할 수 있습니다.

  • 클라이언트 장치의 MQTT 메시지를 기반으로 작업하고 AWS 클라우드 대상으로 데이터를 전송하십시오.

  • MQTT 메시지를 클라이언트 장치에 전송하여 작업을 시작합니다.

클라이언트 디바이스는 코어 디바이스에서 실행되는 MQTT Broker 컴포넌트를 통해 코어 디바이스에 연결하고 코어 디바이스와 통신합니다. 기본적으로 클라이언트 디바이스는 MQTT를 통해서만 서로 통신할 수 있으며 Greengrass 구성요소는 이러한 MQTT 메시지를 수신하거나 클라이언트 디바이스로 메시지를 보낼 수 없습니다.

Greengrass 구성 요소는 로컬 게시/구독 인터페이스를 사용하여 코어 디바이스에서 통신합니다. Greengrass 구성 요소의 클라이언트 장치와 통신하려면 다음을 수행하도록 MQTT 브리지 구성 요소를 구성합니다.

  • 클라이언트 장치의 MQTT 메시지를 로컬 게시/구독으로 릴레이합니다.

  • 로컬 게시/구독의 MQTT 메시지를 클라이언트 장치로 중계합니다.

Greengrass 구성 요소의 클라이언트 장치 섀도우와 상호 작용할 수도 있습니다. 자세한 설명은 클라이언트 디바이스 섀도우와 상호 작용 및 동기화 섹션을 참조하세요.

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

MQTT 브리지 구성 요소는 각각 메시지 소스와 메시지 대상을 지정하는 주제 매핑 목록을 사용합니다. 클라이언트 장치와 통신하려면 MQTT 브리지 구성 요소를 배포하고 구성 요소 구성에서 각 소스 및 대상 주제를 지정하십시오.

MQTT 브리지 구성 요소를 코어 장치 또는 코어 장치 그룹에 배포하려면 구성 요소가 포함된 배포를 만드십시오. aws.greengrass.clientdevices.mqtt.Bridge 배포의 MQTT 브리지 구성 요소 구성에서 주제 매핑을 지정합니다. mqttTopicMapping

다음 예제는 클라이언트 장치에서 로컬 게시/구독 브로커로 clients/MyClientDevice1/hello/world 주제를 릴레이하도록 MQTT 브리지 구성 요소를 구성하는 배포를 정의합니다. merge구성 업데이트에는 직렬화된 JSON 개체가 필요합니다. 자세한 설명은 구성 요소 구성 업데이트 섹션을 참조하세요.

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

MQTT 주제 와일드카드를 사용하여 주제 필터와 일치하는 주제에 대한 메시지를 릴레이할 수 있습니다. MQTT 브리지 v2.2.0 이상을 사용하는 경우 소스 브로커가 로컬 게시/구독일 때 주제 필터에 MQTT 주제 와일드카드를 사용할 수 있습니다. 자세한 내용은 MQTT 브리지 구성 요소 구성을 참조하십시오.

클라이언트 디바이스에서 MQTT 메시지 수신

MQTT 브리지 구성 요소가 클라이언트 장치로부터 메시지를 수신하도록 구성한 로컬 게시/구독 주제를 구독할 수 있습니다.

클라이언트 장치의 MQTT 메시지를 사용자 지정 구성 요소로 수신하려면
  1. 클라이언트 장치가 로컬 게시/구독 주제에 게시하는 MQTT 토픽의 메시지를 릴레이하도록 MQTT 브리지 구성 요소를 구성하고 배포하십시오.

  2. 로컬 게시/구독 IPC 인터페이스를 사용하여 MQTT 브리지가 메시지를 중계하는 주제를 구독하십시오. 자세한 내용은 로컬 메시지 게시/구독SubscribeToTopic 섹션을 참조하세요.

Connect and test 클라이언트 장치 자습서에는 클라이언트 장치의 메시지를 구독하는 구성 요소를 개발하는 섹션이 포함되어 있습니다. 자세한 설명은 4단계: 클라이언트 기기와 통신하는 구성 요소 개발 섹션을 참조하세요.

MQTT 메시지를 클라이언트 장치로 전송

MQTT 브리지 구성 요소가 클라이언트 장치에 메시지를 보내도록 구성한 로컬 게시/구독 주제를 로컬 게시/구독 항목에 게시할 수 있습니다.

MQTT 메시지를 사용자 지정 구성 요소로 클라이언트 장치에 게시하려면
  1. 로컬 게시/구독 주제의 메시지를 클라이언트 장치가 구독하는 MQTT 주제로 릴레이하도록 MQTT 브리지 구성 요소를 구성하고 배포하십시오.

  2. 로컬 게시/구독 IPC 인터페이스를 사용하여 MQTT 브리지가 메시지를 중계하는 주제에 게시할 수 있습니다. 자세한 정보는 로컬 메시지 게시/구독PublishToTopic(을)를 참조하세요.