IoT Core Rule이란?
- IoT Core에서 제공하는 AWS 서비스와 상호 작용하기 위한 라우팅 서비스
- MQTT topic 스트림을 기반으로 규칙이 분석되고 라우팅 작업이 수행
Rule을 사용 예시
- 디바이스로부터 수신한 데이터 필터링
- Lambda를 사용하여 디바이스로부터 수신한 데이터 처리
- 디바이스로부터 수신한 데이터 DynamoDB에 저장
- 디바이스로부터 수신한 데이터 S3에 저장
- 디바이스로부터 수신한 데이터 Queue서비스(SQS, SNS, Kinesis 등)로 송신
사용 방법
규칙 생성
- SQL과 유사한 구문으로 규칙 기술
- 예시
- 온도가 50도를 넘을 때마다 센서의 온도 데이터를 DynamoDB에 저장하는 규칙
- 센서가 “iot/tempSensors/” 아래 토픽에 publish
- 규칙의 첫 행은 “iot/tempSensors/#” 토픽에 쿼리할 때 사용할 SQL SELECT 문을 정의
- 조건이 만족되면 지정된 DynamoDB 테이블에 데이터가 저장
{
"sql": "SELECT *, timestamp() as timeStamp from 'iot/tempSensors/#' WHERE temp > 50",
"description": "Rule to save sensor data when temperature is about 50",
"actions": [
{
"dynamoDB": {
"tableName": "HighTempTable",
"roleArn": "arn:aws:iam::your-aws-account-id:role/dynamoPut",
"hashKeyField": "key",
"hashKeyValue": "${topic(3)}",
"rangeKeyField": "timestamp",
"rangeKeyValue": "${timestamp()}"
}
}
]
}