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

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

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

DynamoDB

まず、DynamoDBです。

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

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

{"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のようにすると、トピックとタイムスタンプを使ったキーが生成され、その名前で保存されるようになります。

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

この記事を書いた人

井上 研一

株式会社VIVINKO 代表取締役/VIVINKOコンサルティング 代表
経済産業省推進資格ITコーディネータ/ITエンジニア

ITコーディネータとして、2016年からAIを業務に組み込む活動を続けている。2018年に株式会社VIVINKOを地元・北九州市で創業し、2020年に東京からUターン。生成AIを利活用するためのクラウドサービス「Gen2Go」を開発し、北九州発!新商品創出事業の認定を受ける。北九州市ロボット・DX推進センターでDXコーディネータとして中小企業支援に携わるほか、一般社団法人IT経営コンサルティング九州(ITC九州)の理事も務める。近著に「使ってわかった AWSのAI」、「ワトソンで体感する人工知能」。日本全国でセミナー・研修講師としての登壇も多数。