GitHub - aereal/gae-go-netatmo-ws-mackerel
冬なのでNetatmo Weather Stationを購入して自宅で動かしはじめました。エアコンをつけるといきなり室温が上がってエアコンはすごいなーということがよくわかって便利。
ウェザーステーション Netatmo Weather Station 【並行輸入品】
- 出版社/メーカー: Netatmo
- メディア: Wireless Phone Accessory
- この商品を含むブログを見る
ハードウェアももちろんWebサービスとアプリもよくできていて、単に現在のデータを見るだけならこれで十分ですが、不快指数を計算したらなにかとアラートを送ったりしたいのでMackerelに投げたい。
ので書きました。GAE/Goで動くやつです。
元々、同僚がGoogle Apps ScriptとAWS Lambdaで動かす実装を作っていてだいたいそれを参考にした。
家で動かすものでメンテフリーにしたく、GASは1週間後読み書きできる気はしないしAWS Lambdaはいいけどもっと素朴なWebアプリケーションで開発したいなと思ったのでGAE/Goで動かしています。
詳しくはREADMEに書いてあるけど、普通のWebアプリケーションとして動かし、GAEのcron機能で定期的にリクエストさせることで定期的にメトリックを送ることができる。
ポイントとしては:
- GAE/GoはHTTPリクエストの発行にgoogle.golang.org/appengine/urlfetchモジュールを使う必要があるので、外部APIにアクセスするパッケージも対応する必要がある
- といってもurlfetch.Client()がnet/http.Clientを返すので、外部APIにアクセスするパッケージはnet/http.Clientを差し替えられさえすればよい
感想: