Syntax Error.

[Sy] AWS IoT Device SDK for JavaScript を Mac にインストールして サンプルアプリケーションを動かす(thing-example.js)

2018/01/01

AWS IoT Device SDK for JavaScript を Mac にインストールしてサンプルアプリケーションの thing-example.js を動かしてみます。

1. インストール&事前準備

AWS IoT Device SDK for JavaScript のインストールと、必要な準備については以下の記事の1. インストール2. device-example.js を動かすための準備 を参照してください。

⇒ [Sy] AWS IoT Device SDK for JavaScript を Mac にインストールして サンプルアプリケーションを動かす(device-example.js)

2. thing-example.js を動かすための準備

AWS_ACCESS_KEY_ID と AWS_SECRET_ACCESS_KEY が必要になるので、環境変数にセットしておきます(.bashrcや.zshrcに記述しておいてもOKです)

$ export AWS_ACCESS_KEY_ID=[アクセスキーをここに]
$ export AWS_SECRET_ACCESS_KEY=[シークレットキーをここに]

3. thing-example.js を実行する

サンプルアプリケーションは、ターミナルを2つ(以降、ターミナル1、ターミナル2と呼びます)立ち上げて、動作確認をしていくことになります。

thing-example.js では、 -P オプションでプロトコルを WebSocket/TLS に変えて(-P=wss)実行します。(この時に先ほど環境変数にセットした AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY が使われます)

まずはターミナル1で実行します。

(ターミナル1)

$ node examples/thing-example.js -P=wss --test-mode=1 -H xxxxxxxxxxxxxx.iot.ap-northeast-1.amazonaws.com
connected to AWS IoT
Mobile thing registered.

-H オプションには、先ほどコピーしておいたエンドポイントをセットしてください。(xxxxxxの部分は英数字、ap-northeast-1 の部分は使っているリージョンによって変わります)

続いてターミナル2で実行します。

(ターミナル2)

$ node examples/thing-example.js -P=wss --test-mode=2 -H xxxxxxxxxxxxxx.iot.ap-northeast-1.amazonaws.com
connected to AWS IoT
Device thing registered.

ここまではどちらも出力は同じですが、次にターミナル2、ターミナル1の順に次のような出力が出てきます。

(ターミナル2)

got 'accepted' status on: RGBLedLamp
updated state to thing shadow
(ターミナル1)

delta on: RGBLedLamp{"version":8,"timestamp":1514707107,"state":{"red":196,"green":176,"blue":250},"metadata":{"red":{"timestamp":1514707107},"green":{"timestamp":1514707107},"blue":{"timestamp":1514707107}}}

ターミナル2の方からRGBの値を送って状態を更新し、ターミナル1に表示される、というような動作をしていますね。