- 新しい順
- 投票が多い順
- コメントが多い順
안녕하세요, AWS re:Post에 문의주셔서 감사합니다.
문의주신 내용은 AWS IoT Rule Engine에서 SQL문을 통해 숫자배열을 ASCII 코드 값으로 변경하는 방법이 궁금하신 것으로 이해하였습니다.
제가 조사한 바에 의하면 AWS IoT SQL은 chr(String) 함수[1]를 제공하여 숫자를 ASCII 코드로 변경하는 기능을 제공합니다. 하지만 안타깝게도 숫자 '배열'의 경우에는 ASCII 코드 값으로 변경하는 것을 지원하지 않습니다. 문서[1]을 보면 Argument Type으로 Array 는 Undefined 입니다.
그러므로 위의 예시에서 가능한 방법이라면 IoT Core의 Destination을 Lambda로 설정하여 Lambda 함수 내에서 변환 코드를 작성하는 방법을 제안드립니다.
예를들어, 발행하는 토픽이 'test/payload'이고 payload 값은 { “HelloWorld”: [72,101,108,108,111,119,111,114,108,100] } 일때,
다음과 같은 SQL statement를 적용하면,
SELECT VALUE HelloWorld FROM ‘test/payload’
아래와 같은 payload가 발송됩니다.
[72,101,108,108,111,119,111,114,108,100]
Lambda 함수에서, 전달받은 payload를 반복문을 통해 ASCII코드 값으로 변경하여 사용할 수 있습니다.
만약 배열이 아닌 값을 변경한다면 아래와 같은 방법을 사용할 수 있습니다.
발행하는 토픽이 'test/payload'이고 payload 값은 { “HelloWorld”: 72 } 일때,
SQL statement을 아래와 같이 적용하면,
SELECT chr(HelloWorld) AS HelloWorld FROM 'test/payload'
아래와 같은 payload가 발송됩니다.
{'HelloWorld': 'H'}
위의 가이드는 문서 [2]를 참고하여 작성하였습니다.
위의 내용이 문제 해결에 도움이 되었기를 바라며, 추가 궁금하신 점이나 질문이 있다면 문의주시기 바랍니다.
감사합니다.
- References ==========
[1] AWS IoT SQL Functions chr(String) https://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-functions.html#iot-func-chr
[2] SELECT clause: https://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-select.html
関連するコンテンツ
- AWS公式更新しました 2年前
- AWS公式更新しました 10ヶ月前
- AWS公式更新しました 2年前