기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
디바이스 섀도우 MQTT 주제
디바이스 섀도우 서비스는 예약된 MQTT 주제를 사용하여 디바이스 및 앱이 디바이스(섀도우)의 상태 정보를 가져오거나 업데이트하거나 삭제할 수 있도록 합니다.
섀도우 주제에 대해 게시 또는 구독하려면 주제 기반 인증이 필요합니다. AWS IoT
은(는) 기존 주제 구조에 새 주제를 추가할 권리를 보유합니다. 그러므로 섀도우 주제에 대한 와일드 카드 구독은 삼가도록 권장합니다. 예를 들어가 새로운 섀도우 주제를 AWS IoT 도입함에 따라이 주제 필터와 일치하는 주제 수가 증가할 수 $aws/things/thingName/shadow/#
있으므로와 같은 주제 필터를 구독하지 마세요. 이러한 주제에 게시되는 메시지의 예는 섀도우와의 상호 작용 섹션을 참조하세요.
섀도우는 명명되거나 명명되지 않을(클래식) 수 있습니다. 각 섀도우에 사용되는 주제는 주제 접두사만 다릅니다. 이 표에서는 각 섀도우 유형에서 사용하는 주제 접두사를 보여줍니다.
ShadowTopicPrefix 값 |
섀도우 유형 |
---|---|
$aws/things/ |
명명되지 않은(클래식) 섀도우 |
$aws/things/ |
명명된 섀도우 |
전체 주제를 생성하려면 참조할 섀도우 유형에 대해
를 선택하고 ShadowTopicPrefix
및 thingName
(해당하는 경우)을 해당 값으로 바꾸고 다음 섹션에 표시된 대로 주제 스텁을 추가합니다.shadowName
다음은 그림자와 상호 작용하는 데 사용되는 MQTT 주제입니다.
주제
/get
디바이스 섀도우를 가져오려면 이 주제에 빈 메시지를 게시합니다.
ShadowTopicPrefix
/get
AWS IoT 는 /get/accepted 또는에 게시하여 응답합니다/get/rejected.
예제 정책
다음은 필요한 정책의 예입니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:
region
:account
:topic/$aws/things/thingName
/shadow/get" ] } ] }
/get/accepted
AWS IoT 는 디바이스의 섀도우를 반환할 때이 주제에 응답 섀도우 문서를 게시합니다.
ShadowTopicPrefix
/get/accepted
자세한 내용은 응답 상태 문서 단원을 참조하십시오.
예제 정책
다음은 필요한 정책의 예입니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:
region
:account
:topicfilter/$aws/things/thingName
/shadow/get/accepted" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region
:account
:topic/$aws/things/thingName
/shadow/get/accepted" ] } ] }
/get/rejected
AWS IoT 는 디바이스의 섀도우를 반환할 수 없을 때 오류 응답 문서를이 주제에 게시합니다.
ShadowTopicPrefix
/get/rejected
자세한 내용은 오류 응답 문서 단원을 참조하십시오.
예제 정책
다음은 필요한 정책의 예입니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:
region
:account
:topicfilter/$aws/things/thingName
/shadow/get/rejected" ] }, { "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region
:account
:topic/$aws/things/thingName
/shadow/get/rejected" ] } ] }
/update
디바이스 섀도우를 업데이트하려면 이 주제에 요청 상태 문서를 게시합니다.
ShadowTopicPrefix
/update
메시지 본문에 부분 요청 상태 문서가 포함되어 있습니다.
디바이스의 상태를 업데이트하려는 클라이언트는 다음과 같은 desired
속성이 포함된 JSON 요청 상태 문서를 보냅니다.
{ "state": { "desired": { "color": "red", "power": "on" } } }
섀도우를 업데이트하는 디바이스는 다음과 같은 reported
속성이 포함된 JSON 요청 상태 문서를 전송합니다.
{ "state": { "reported": { "color": "red", "power": "on" } } }
AWS IoT 는 /update/accepted 또는에 게시하여 응답합니다/update/rejected.
예제 정책
다음은 필요한 정책의 예입니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:
region
:account
:topic/$aws/things/thingName
/shadow/update" ] } ] }
/update/delta
AWS IoT 는 디바이스의 섀도우에 대한 변경을 수락할 때 응답 상태 문서를이 주제에 게시하고 요청 상태 문서에는 desired
및 reported
상태에 대한 다양한 값이 포함됩니다.
ShadowTopicPrefix
/update/delta
메시지 버퍼에 /delta response state document가 포함되어 있습니다.
메시지 본문 세부 정보
-
update/delta
에 게시되는 메시지에는desired
및reported
섹션이 서로 다른 경우에만 원하는 속성이 포함됩니다. 이 메시지는 이러한 속성이 현재 업데이트 메시지에 포함되어 있든지, 또는 이미 AWS IoT에 저장되어 있든지 상관없이 모두 포함합니다.desired
및reported
섹션이 서로 다르지 않은 속성은 포함하지 않습니다. -
속성이
reported
섹션에는 있지만desired
섹션에는 동일한 속성이 없는 경우 이 속성은 포함되지 않습니다. -
속성이
desired
섹션에는 있지만reported
섹션에는 동일한 속성이 없는 경우 이 속성은 포함됩니다. -
속성이
reported
섹션에서 삭제되었지만desired
섹션에는 계속 존재하는 경우 이 속성은 포함됩니다.
예제 정책
다음은 필요한 정책의 예입니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:
region
:account
:topicfilter/$aws/things/thingName
/shadow/update/delta" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region
:account
:topic/$aws/things/thingName
/shadow/update/delta" ] } ] }
/update/accepted
AWS IoT 는 디바이스의 섀도우에 대한 변경 사항을 수락하면이 주제에 응답 상태 문서를 게시합니다.
ShadowTopicPrefix
/update/accepted
메시지 버퍼에 /accepted response state document가 포함되어 있습니다.
예제 정책
다음은 필요한 정책의 예입니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:
region
:account
:topicfilter/$aws/things/thingName
/shadow/update/accepted" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region
:account
:topic/$aws/things/thingName
/shadow/update/accepted" ] } ] }
/update/documents
AWS IoT 는 섀도우에 대한 업데이트가 성공적으로 수행될 때마다 상태 문서를이 주제에 게시합니다.
ShadowTopicPrefix
/update/documents
메시지 본문에 /documents response state document가 포함되어 있습니다.
예제 정책
다음은 필요한 정책의 예입니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:
region
:account
:topicfilter/$aws/things/thingName
/shadow/update/documents" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region
:account
:topic/$aws/things/thingName
/shadow/update/documents" ] } ] }
/update/rejected
AWS IoT 는 디바이스의 섀도우에 대한 변경을 거부할 때 오류 응답 문서를이 주제에 게시합니다.
ShadowTopicPrefix
/update/rejected
메시지 본문에 오류 응답 문서가 포함되어 있습니다.
예제 정책
다음은 필요한 정책의 예입니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:
region
:account
:topicfilter/$aws/things/thingName
/shadow/update/rejected" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region
:account
:topic/$aws/things/thingName
/shadow/update/rejected" ] } ] }
/delete
디바이스 섀도우를 삭제하려면 삭제 주제에 빈 메시지를 게시합니다.
ShadowTopicPrefix
/delete
메시지의 내용은 무시됩니다.
섀도우를 삭제해도 버전 번호가 0으로 재설정되지는 않습니다.
AWS IoT 는 /delete/accepted 또는에 게시하여 응답합니다/delete/rejected.
예제 정책
다음은 필요한 정책의 예입니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:
region
:account
:topic/$aws/things/thingName
/shadow/delete" ] } ] }
/delete/accepted
AWS IoT 는 디바이스의 섀도우가 삭제될 때이 주제에 메시지를 게시합니다.
ShadowTopicPrefix
/delete/accepted
예제 정책
다음은 필요한 정책의 예입니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:
region
:account
:topicfilter/$aws/things/thingName
/shadow/delete/accepted" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region
:account
:topic/$aws/things/thingName
/shadow/delete/accepted" ] } ] }
/delete/rejected
AWS IoT 는 디바이스의 섀도우를 삭제할 수 없을 때이 주제에 오류 응답 문서를 게시합니다.
ShadowTopicPrefix
/delete/rejected
메시지 본문에 오류 응답 문서가 포함되어 있습니다.
예제 정책
다음은 필요한 정책의 예입니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:
region
:account
:topicfilter/$aws/things/thingName
/shadow/delete/rejected" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region
:account
:topic/$aws/things/thingName
/shadow/delete/rejected" ] } ] }