2017-09-09 9 views
0

내 주제는 문자열 페이로드 ("[v1:ThingName]")를 주제 (someTopic/topic1)에 게시합니다. 규칙 엔진에서이 주제를 캡처하고 람다 함수로 전송하는 규칙이 있습니다.AWS IOT 규칙에서 문자열 페이로드 처리하기

SELECT * FROM 'someTopic/+' 

나는 페이로드와 함께 룰 엔진에서 캡처됩니다 항목 1 일부를 보내려고합니다. 따라서 주제 (2)에서 캡처 할 수 있습니다. select 문에서 topic (2)를 *와 어떻게 연결합니까?

답변

0

많은 시행 착오 끝에, 페이로드가 문자열이기 때문에 그렇게 할 수 없다고 생각했습니다.

하지만이 문제를 해결하려면 인코딩 기능을 사용하고 있어야합니다. 기본적으로 json 객체로 전체 페이로드를 base64로 인코딩 한 다음 topic (2) 값도 보유합니다.

그래서 내 규칙 SQL 쿼리는 이와 같이 나타납니다.

SELECT encode(*, 'base64') as encode, topic(2) as topic FROM 'someTopic/+' 

람다 함수에서 페이로드를 디코딩합니다.