AWS IoT에서 Lambda 액션으로 CSV 데이터 전달

2552 단어 AWSLambdaawsIoTAWS

소개



IoT 디바이스가 CSV 형식으로만 데이터를 전송할 수 있는 환경에서 AWS IoT에서 Lambda로 즉시 데이터를 전달하고 싶습니다.
라는 요구가 있는 조사 메모입니다.
AWS IoT에 대한 정보는 다양하지만, 디바이스로부터의 입력은 JSON을 전제로 한 것이 비교적 많아, CSV를 입력으로 하는 방법에 도착하기까지 조금 시간이 걸렸습니다. . .
이 메모가 같은 상황에 있는 분의 조사 시간을 조금이라도 단축할 수 있으면 다행입니다.

대응 방법



AWS IoT 규칙을 사용하여 수신 데이터를 base64로 인코딩하고 이러한 SQL을 사용하여 Lambda에 전달합니다.

AWS IoT



다음과 같이 "*"에 encode 함수를 적용한다.


람다



base64된 데이터가 SQL로 지정한 별명을 키로서 event 객체에 저장된다.
import logging
logger = logging.getLogger()
logger.setLevel(logging.INFO)
def lambda_handler(event, context):
    logger.info('event: %s', event)
    return ''

같은 Lambda를 IoT 규칙의 동작으로 지정하면,
[INFO]  2018-04-23T07:30:41.199Z    xxx event: {'data': 'YWEsYmIsY2MsZGQ='}

같은 결과를 얻을 수 있습니다.  
※이 결과는 입력값을 "a, b, c"로 한 경우의 예.

보충



입력이 「CSV」인 것에 얽매이지 않고, 「원 데이터를 그대로 입력한다」라고 하는 관점에서 조사하고 있으면, 이하의 정보를 바삭하게 찾아내져 있었을 것입니다만. 여러가지 부족하네요.
- 바이너리 페이로드 사용

참고 자료



- 바이너리 페이로드 사용
- SQL 함수

좋은 웹페이지 즐겨찾기