2018.07.14 · 技術と道具

AWS IoTで受信したメッセージをDynamoDBとS3に保存

次は、DynamoDBとS3に保存するルールを作成します。

先ほどのKinesis Firehoseの時と同じようにルールを作成し、アクションとしてDynamoDBとS3の2つを作ります。

DynamoDB

まず、DynamoDBです。

あらかじめDynamoDBに下記の設定でテーブルを作成します。

今回のデータは下記のようなものなので、プライマリキーとしてserial_no、ソートキーとしてtimestampを指定しました。

JSON
{"sound": 385, "light": 3.3203125, "serial_no": 1001, "temp": 26.273446579320307, "timestamp": "2018-07-14T03:16:21.181605+00:00"}

AWS IoTのルール作成画面では、テーブル名、ハッシュキー、レンジキーを指定します。ハッシュキーはDynamoDBのテーブルのプライマリキー、レンジキーはソートキーとなります。ハッシュキー値として、${serial_no}や${timestamp}のように指定すると実データの中から値を抽出してセットしてくれます。

あとはAWS IoTからDynamoDBにアクセスするIAMロールを作成し、指定すると、DynamoDBにメッセージが書き込まれるようになります。

S3

S3は、バケット名とキーを指定します。キーは、${topic()}/${timestamp()}.jsonのようにすると、トピックとタイムスタンプを使ったキーが生成され、その名前で保存されるようになります。

このように保存されます。

2018/07/14 15:28
← AWS IoTで受信したメッセージをKinesis Fire…
AWS IoTでS3に蓄積したログをAthenaでアドホック… →
井上 研一
経済産業省推進資格ITコーディネータとして中小企業のDX・AI活用の現場で伴走支援を行う。「ITCプロセスガイドライン4.0」および「中小企業向けAI活用ガイド」執筆メンバー。著書・講演多数。ITエンジニアとして25年以上の実務経験。AI導入の実務に10年以上携わる。自ら開発したAIサービス「Gen2Go」が北九州発!新商品創出事業の認定を受ける。2026年4月より北九州市立大学大学院マネジメント研究科の学生としての顔も持つ。

本サイトおよびブログに掲載している内容は、特に明記のない限り、井上研一個人の見解に基づくものです。所属・関与する組織、団体、企業、研究会等の公式見解を示すものではありません。