IoTButton Go Firebaseで「イラッと」をロギングする。 #golang #lambda #IoTButton

Buildersconにプロポーザルを上げています。よろしくお願いします。(挨拶)

ふと、自分が一日にどのくらい「イラッ」としているのかを計測したくなりました。みなさんもなりますよね?。エンジニアとしては余裕が大切ですし、イライラしてるのを周りに撒き散らすのも良くないですね。というわけで、まずは自分のイラつきを可視化するためにログを取ることにしました。

ちょうどよくAmazon IoT Buttonも出たことですし、ボタンを押したら、日付とボタン押しの種類(single double longが取れます。)をFirebaseに雑に投げておいて、あとから可視化できるようにしておきましょう。レシピは以下の通り

IoTButtonの設定をする。

アプリがあるから楽ですね。ちなみにハマった罠としては2.4GHz帯じゃないと使えないので注意。会社でのイラッと計測にいきなり暗雲が立ち込める。

local環境を構築する

Lambdaなので毎回書いてアップして、修正して…、やりたくないのでおとなしくlocalに環境構築します。
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/sam-cli-requirements.html

以前、0.2あたりのcliをインストールしていた方はまず、npm uninstallを実行してからインストールしましょう。nodeからpythonになったんですかね?

コードを書きましょう





コード内に環境依存のデータなどを置きたくないので環境変数をセットする。
今回は使っていないですが、Slackのtokenなどをセットするのに良いと思います。(さらにKMSなどと組み合わせるとより良いですね。)
template.yamlとsam_env.jsonに設定を記述します。で、sam localを実行する際にsam_env.jsonを指定すると環境変数が置き換わります。コマンドでの指定方法は下の方に。

まとめると以下の様な感じ


template.yaml -> lambdaの構成や利用する環境変数などを設定
event.json -> IoT Buttonから送られてくるデータを記述
sam_env.json -> template.yamlに設定したデフォルト値以外の環境変数を利用する場合の記述。

自分はMacを利用しているので以下の様な感じで記述


実行するとこんな感じ。
やったぜ!!!!!!

というわけで、ひとまずFirebaseにログを貯めるようにしたので、次はこれをグラフにして表示する部分を作らないといけませんね。ひとまず以上です。

参考にさせていただきました。