AWS DynamoDBを試す

AWS IoTで受けたデータを、DynamoDBへ記録する手順をメモします

DBを作成する

コンソールからDynamoDBをクリックします。



「テーブルの生成」をクリックします。



DynamoDBテーブル生成を行います。以下はサンプル入力です。
テーブル名:Save_IoT_Data
プライマリキー/パーティションキー:Client_id    文字列
プライマリキー/ソートキーの追加:timestamp    数値



作成を押します。



Save_IoT_Dataというテーブルが生成されました。



生成されたように見えますが、IoTのActionから実際に使えるのは30分ほど経った後のようです。

IoTでActionを設定する

MQTT を受け取ると、DynamoDBへデータを投げるように設定します。コンソールからIoT Coreをクリックします。



左のAWS IoTのメニューからACTをクリックします。



ルールの生成をクリックします。



ルールの生成を行います。
名前    GetIoTData(仮)
説明    Get IoT Data and save to DynamoDB(仮)



引き続きルールの生成を行います。
属性    *    <- データ全部を意味しています。
トピックスフィルター    IoTData/Value<- MQTTのトピックスを設定します。。
条件    <- 取り合えず設定無し。(無条件)



アクションの追加をクリックします。



アクションを選択します。「DynamoDBテーブルにメッセージを挿入する」にチェックを入れます。



アクションの設定をクリックします。



アクションの設定

テーブル名は、先に設定したDynamoDBのテーブル名がプルダウンメニューで選択できます。テーブル名を選択すると、ハッシュキー、Hash keyのタイプ、レンジキー、Range Key Typeは自動的に読み込まれます。
ハッシュキー値    $(clientid())   <- MQTTのクライアントIDを設定
レンジキー値    $(timestamp())   <- MQTTのタイムスタンプを書き込む



この列にメッセージデータを書き込む    MQTTのDATAを保存する列の名前です。(無くてもOK)
操作    INSERT
新しいロールの生成をクリックします。



新しいロールの生成をクリックします。
IDMロール名    DynamoDB-Role
更新をクリックします。



これで新しいアクションが完成します。左上の矢印をクリックします。





IoTでActionを設定する

AWS IoT からテストをクリックしてMQTTクライアントを立ち上げる。トピックスへのサブスクリプションに、先ほどアクションで設定したトピックフィルターと同じトピックスを設定します。トピックスへのサブスクリプションをクリックします。



入力として、

{
	"temperature":"20",
	"humidity":"60",
	"stomosphere pressure":"1013"
}

と入力して、トピックスに発行をクリックします。



これで、コンソールからMQTTが投げられて、アクションが起動し、DynamoDBへ記録されたはずです。ただし、DynamoDBを設定してから30分以上経過していないと動作しないので、記録されていなくてもあわてないことが肝要DynamoDB -> テーブル -> 項目 -> 全画面表示(右上)