share facebook facebook2 twitter menu hatena pocket slack

2016.04.04 MON

AWS IOTでDynamoDBへ登録する【cloudpack 大阪 BLOG】

河村 敏貴

WRITTEN BY河村 敏貴

仕事でAWS IOTを使って簡単なデモを作成しました。センサーから送信されたデータは、IOTからDynamoDBへ直接連携できる機能が用意されていたため、DynamoDBへ登録することにしました。今回はその手順を残しておきます。

手順(概要)

1.テーブル作成
2. AWS IOTの設定
3. 動作確認

1.テーブル作成

AWS IOT連携する場合はソートキーが必須になるのでソートキーも作成してください。

20160124160343

2.AWS IOTの設定

①thingの作成

AWS IOT上で管理するデバイスの名前を作成します。

20160121115311

②ruleの作成

IOTで受け取ったデータをどのように処理するかのルールを作成します。

20160124162649

Create a ruleをクリック

20160124164411

20160124164422

③証明書の取得

認証用の証明書を取得します

20160205233115

秘密鍵、証明書等をダウンロードします。
また使いたいSDKを選択し、「Confirm & start connect」を選択します。

20160205233131

以下のページが表示されSDKのダウンロードができます。

20160205234249

また、下記ページからroot証明書をダウンロードします。
https://www.symantec.com/content/en/us/enterprise/verisign/roots/VeriSign-Class%203-Public-Primary-Certification-Authority-G5.pem

3. 動作確認

動作確認はnodeで1回だけpublishするサンプルを作成しました。テストだけならaws cliでも確認可能です。
aws-iot-device-sdk-js/examples以下に適当な名前で下記プログラムを作成します。
また同じディレクトリにcertsディレクトリを作成し上記で取得した証明書を格納しておきます

const deviceModule   = require('..').device;
const cmdLineProcess = require('./lib/cmdline');

const device = deviceModule({
  keyPath: './certs/private.pem.key',
  certPath: './certs/certificate.pem.crt',
  caPath: './certs/root-CA.crt',
  clientId: '1',
  region: 'ap-northeast-1',
  reconnectPeriod:10
});

var thingName = 'iot_test'
device.subscribe(thingName);

var put_data = {};
var data = new Array();


// データ送信
var now = new Date();
var yyyymmdd = now.getFullYear()+
           ( "0"+( now.getMonth()+1 ) ).slice(-2)+
           ( "0"+now.getDate() ).slice(-2);

var hhmmss = ("0" + now.getHours()).slice(-2)  + ("0" + now.getMinutes()).slice(-2) + ("0" + now.getSeconds()).slice(-2) + ("00" + now.getMilliseconds()).slice(-3);
put_data = {
              date: yyyymmdd,
              time : hhmmss,
              value :Math.floor( Math.random() * 11 )
           };


device.publish(thingName, JSON.stringify(put_data));

console.log( JSON.stringify(put_data));
console.log( 'publish');

次のコマンドで実行します。

node put_data.js

publishしたデータ送信データが登録されましたね。

20160206000916

今回初めてDynamoDBを使ったのでよく分からず、IOTの設定のところでつまづきました。
また、ルール作成のところでPayload fieldにDynamoに登録したいフィールドを入力しましたが、
全項目が登録されてしまい特定のフィールドだけ選択して登録ということが出来ませんでした。ここはもう少し調べてみたいと思います。

元記事はこちら

AWS IOTでDynamoDBへ登録する【cloudpack 大阪 BLOG】

河村 敏貴

河村 敏貴

クラウド業界に興味を持ち、業務系のアプリエンジニアからインフラエンジニア見習いに転身しました。日々新しい技術に触れることができる環境でもがきつつも楽しい毎日を過ごしています。 河村 敏貴