起床前とか自宅に近づいたときにIFTTTとNature Remoで勝手にエアコンをいれるようにしてるんだけど、季節が移り変わると別に寒くないのに勝手に暖房が動いたりしてうっとうしくなりそうなので、Mackerelから室温を取得して適当にエアコンをいれてくれるAPIをつくることにした。
これを npm run build; sam deploy --guided --parameter-overrides "MackerelApiKey=XXX" "IftttApiKey=XXX"
すれば多分誰でも使えるけど、Mackerelのサービスメトリクス名が固定だったりするのでおそらく実際は役に立たない(自分以外にこういうことやりたい人がいなさそうなのでサボっている)。
最近しばらくホームオートメーションとLambdaで遊んでるので似たようなことをしているように見えそうだけど、今回の主な差分はTypeScriptを使うようにしてみたところ。TypeScriptの勉強をしてみたかったんです。
当初は
にある方法でオンデマンドにTypeScriptファイルをトランスパイルして動かそうと思っていて、Hello Worldを返すだけなら実際それでも動いたんだけど、本格的な実装が終わってから import axios from 'axios;
するだけで実行がスタックしてしまうことが分かった。
使い物にならないし回避方法も分からないしうまくいったとしても実行効率が悪いはずなので、諦めて手元でトランスパイルするように方向転換した。ちょっと楽できるようにnpm-scriptsに書き足しておいた(けど手元でよく使うコマンドのみなので、例えば sam invoke
相当のものは書いてない)。
TypeScriptはまだ良くわかってないけど覚えられると色々と便利そうなのでもう少し勉強を進めていきたい。