だいぶ前に作ったのだが、忘れないうちにまとめる。
概要
会社の勉強会で4人チームで作ったもの。その中でnodejs/aws/LINE周りを担当。
その関係でpython周りはよくわからない。
概要図
作業メモ
・LINEのMessage APIを利用する為、LINE developerに登録&channel作成。
LINE developer
・せっかくなのでLINE@MANAGERからリッチメニュー作成。
・node版aws sdkインストール。
・AWS Iotへアクセスする為、認証キーを発行し、raspberry piへコピー。
/home/pi/deviceSDK/certs/に置いている。readtempture.js参考
AWS IoT デバイス証明書を作成および登録する
・AWS Iot > ACT > ルール作成
使う道は特になかったが、せっかくなのでDynamoDBにデータを貯めるようにした。
・nodejsで作成したコードと認証ファイル・node_modulesをzipで固めてlambda(s3)へアップロード。あとは本体のexports.jsを編集しながらデバック。
ハマっていたところ
・LINEのWebhookを登録しようとしたところ、「※SSLのみ対応」になっており、lambdaからの直接アクセスができなかった。
調べたところ、API gatewayを利用するとhttps化できることが分かった。
・ネットから色んな情報を参考していてが、awsが変わりすぎてあまり参考にならなかった。ちなみに現在の設定画面はこんな感じ。
・aws Iotの動きがいまいちわからない。いきなり接続が切断される場合があって、しばらく再接続ができなくなる。
ただし、aws Iot > テストにあるMQTTクライアントでpublishするとたまにsubscribeされる。
反省点
serverless frameworkで作って見たかったが、いまさら面倒なので放置。
感想
・サーバーを作らずにここまで作れたのが驚き。AWS Iotとlambdaの組み合わせはいい感じだった。今度はraspiberry piではなく、arduinoにネットワークモジュールを付けてやってみたい。
・意外とLINE@MANAGERで色々できて楽しかった。
コードはgithubへpush済み
IotToLine