はじめに
AWS IoT Coreのルールで使うSQLにおいて、MQTTのJSONプロパティ名(フィールド名)が特殊な場合の参照方法を紹介する。
動作環境
- AWS IoT SQLルールエンジン
- バージョン:2016-03-23
方法
以下のような特殊な要素を含むJSONプロパティ名を参照する場合は、get関数を使う。
-
.
(ドット) -
-
(ハイフン) - 数字
例
特殊なJSONプロパティを含むMQTTの例(トピック名:my/topic/)
{
"serial.no": "00001",
"item1" : {
"0": {
"my-key": "myValue"
}
}
}
上記のMQTTトピックから、serial.no
とmy-key
を抽出するSQLは以下となる。
AWS IoT SQL
SELECT
get(*, 'serial.no') AS serial_no
get(get(get(*, 'item1'), '0'), 'my-key') AS my_key
FROM 'my/topic'
結果
{
"serial_no": "00001",
"my_key": "myValue"
}
まとめ
AWS IoT Coreのルールで使うSQLにおいて、MQTTのJSONプロパティ名(フィールド名)が特殊な場合の参照方法を紹介した。通常のSQLと参照方法が異なりget関数を使うことで参照できた。気づけないと、結構はまってしまうのでどなたかのお役に立ててればと思う。
参考