클라이언트 디바이스 섀도우와 상호 작용 및 동기화 - AWS IoT Greengrass

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

클라이언트 디바이스 섀도우와 상호 작용 및 동기화

Shadow Manager 구성 요소를 사용하여 클라이언트 장치 섀도우를 포함한 로컬 섀도우를 관리할 수 있습니다. 섀도우 관리자를 사용하여 다음 작업을 수행할 수 있습니다.

  • Greengrass 구성 요소의 클라이언트 장치 섀도우와 상호 작용합니다.

  • 클라이언트 디바이스 섀도우를 와 AWS IoT Core 동기화합니다.

참고

섀도우 매니저 컴포넌트는 AWS IoT Core 기본적으로 섀도우를 동기화하지 않습니다. 동기화할 클라이언트 장치 섀도를 지정하도록 섀도우 관리자 구성 요소를 구성해야 합니다.

사전 조건

클라이언트 장치 섀도와 상호 작용하고 클라이언트 장치 섀도를 동기화하려면 코어 장치가 다음 요구 사항을 충족해야 합니다. AWS IoT Core

섀도우 관리자가 클라이언트 장치와 통신할 수 있도록 합니다.

기본적으로 섀도우 관리자 구성요소는 클라이언트 장치 섀도를 관리하지 않습니다. 이 기능을 사용하려면 클라이언트 장치와 섀도우 관리자 구성 요소 간에 MQTT 메시지를 릴레이해야 합니다. 클라이언트 디바이스는 MQTT 메시지를 사용하여 디바이스 섀도우 업데이트를 수신하고 전송합니다. 섀도우 관리자 구성 요소는 로컬 Greengrass 게시/구독 인터페이스를 구독하므로 장치 섀도우 주제에 대해 MQTT 메시지를 릴레이하도록 MQTT 브리지 구성 요소를 구성할 수 있습니다.

MQTT 브리지 구성 요소는 각각 메시지 소스와 메시지 대상을 지정하는 주제 매핑 목록을 사용합니다. 섀도우 관리자 구성 요소가 클라이언트 장치 섀도를 관리할 수 있도록 하려면 MQTT 브리지 구성 요소를 배포하고 클라이언트 장치 섀도우에 대한 섀도우 주제를 지정하십시오. 로컬 MQTT와 로컬 게시/구독 간에 메시지를 양방향으로 릴레이하도록 브리지를 구성해야 합니다.

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

다음 예제를 사용하여 클라이언트 장치와 섀도우 관리자 구성 요소 간의 통신을 활성화하도록 MQTT 브리지 구성 요소를 구성합니다.

참고

AWS IoT Greengrass콘솔에서 이러한 구성 예제를 사용할 수 있습니다. AWS IoT GreengrassAPI를 사용하는 경우 merge 구성 업데이트에는 직렬화된 JSON 객체가 필요하므로 다음 JSON 객체를 문자열로 직렬화해야 합니다. 자세한 설명은 구성 요소 구성 업데이트 섹션을 참조하세요.

예: 모든 클라이언트 디바이스 섀도우 관리

다음 MQTT 브리지 구성 예제를 사용하면 섀도우 관리자가 모든 클라이언트 장치의 모든 섀도우를 관리할 수 있습니다.

{ "mqttTopicMapping": { "ShadowsLocalMqttToPubsub": { "topic": "$aws/things/+/shadow/#", "source": "LocalMqtt", "target": "Pubsub" }, "ShadowsPubsubToLocalMqtt": { "topic": "$aws/things/+/shadow/#", "source": "Pubsub", "target": "LocalMqtt" } } }
예: 클라이언트 장치의 섀도우 관리

다음 MQTT 브리지 구성 예제를 사용하면 섀도우 관리자가 이름이 지정된 MyClientDevice 클라이언트 장치의 모든 섀도우를 관리할 수 있습니다.

{ "mqttTopicMapping": { "ShadowsLocalMqttToPubsub": { "topic": "$aws/things/MyClientDevice/shadow/#", "source": "LocalMqtt", "target": "Pubsub" }, "ShadowsPubsubToLocalMqtt": { "topic": "$aws/things/MyClientDevice/shadow/#", "source": "Pubsub", "target": "LocalMqtt" } } }
예: 모든 클라이언트 장치의 명명된 섀도우 관리

다음 MQTT 브리지 구성 예제를 사용하면 섀도우 관리자가 모든 클라이언트 장치의 이름이 지정된 DeviceConfiguration 섀도우를 관리할 수 있습니다.

{ "mqttTopicMapping": { "ShadowsLocalMqttToPubsub": { "topic": "$aws/things/+/shadow/name/DeviceConfiguration/#", "source": "LocalMqtt", "target": "Pubsub" }, "ShadowsPubsubToLocalMqtt": { "topic": "$aws/things/+/shadow/name/DeviceConfiguration/#", "source": "Pubsub", "target": "LocalMqtt" } } }
예: 모든 클라이언트 장치의 명명되지 않은 섀도우 관리

다음 MQTT 브리지 구성 예제를 사용하면 섀도우 관리자가 모든 클라이언트 장치에 대해 명명되지 않은 섀도우를 관리할 수 있지만 명명된 섀도는 관리할 수 없습니다.

{ "mqttTopicMapping": { "DeleteShadowLocalMqttToPubsub": { "topic": "$aws/things/+/shadow/delete", "source": "LocalMqtt", "target": "Pubsub" }, "DeleteShadowPubsubToLocalMqtt": { "topic": "$aws/things/+/shadow/delete/#", "source": "Pubsub", "target": "LocalMqtt" }, "GetShadowLocalMqttToPubsub": { "topic": "$aws/things/+/shadow/get", "source": "LocalMqtt", "target": "Pubsub" }, "GetShadowPubsubToLocalMqtt": { "topic": "$aws/things/+/shadow/get/#", "source": "Pubsub", "target": "LocalMqtt" }, "UpdateShadowLocalMqttToPubsub": { "topic": "$aws/things/+/shadow/update", "source": "LocalMqtt", "target": "Pubsub" }, "UpdateShadowPubsubToLocalMqtt": { "topic": "$aws/things/+/shadow/update/#", "source": "Pubsub", "target": "LocalMqtt" } } }

구성 요소의 클라이언트 장치 섀도우와 상호 작용합니다.

로컬 섀도우 서비스를 사용하여 클라이언트 장치의 로컬 섀도우 문서를 읽고 수정하는 사용자 지정 구성 요소를 개발할 수 있습니다. 자세한 설명은 구성 요소의 그림자와 상호 작용 섹션을 참조하세요.

클라이언트 장치 섀도우를 다음과 동기화합니다. AWS IoT Core

로컬 클라이언트 장치 섀도우 상태를 동기화하도록 섀도우 관리자 구성 요소를 구성할 수 있습니다. AWS IoT Core 자세한 내용은 로컬 장치 섀도우를 다음과 동기화합니다. AWS IoT Core을(를) 참조하세요.