0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS IoTルールのSQLでMQTTのJSONプロパティ名が特殊な場合の参照方法

Posted at

はじめに

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.nomy-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関数を使うことで参照できた。気づけないと、結構はまってしまうのでどなたかのお役に立ててればと思う。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?