背景
-
この記事を見かけて、SERVERLESS使えばもっと簡単に早く作れるんじゃないかと思った。このURL参考にすれば基本的に作れます、おすすめ。
LINE BOT APIを使ってAWS Lambdaでサーバレスな版画風写真加工BOTを作る(Node.js) -
LINE Developerアカウントを持て余していた。
-
SlackのBot作ってて楽しいってなってた。
Hubot × Raspberry Pi2で電車の遅延情報をSlackに流す
大まかな手順
- serverlessをインストール
- aws-cliをインストール
- aws configure
- sls project create
- sls function create hogehoge
- s-function.jsonのmethodをPOSTにする(LINEのCallbackはPOSTリクエストで飛んでくる)
- npm install --save serverless-cors-plugin(CORS設定しとかないと403になっちゃう)
- s-project.jsonにplugin書く(SERVERLESSのGithubに書いてある)
- handler.jsに処理書く
- sls function deploy
- sls endpoint deploy -a(初回だけ-aしないと、CORSの設定が反映されない)
- LINEのCallbackにendpointのURLを書く。(※ポート番号を443にする必要あり。要するにhttps.....amazonaws.com:443/dev/hogehogeにする。)
以上。handler.jsに書く処理量によりますが、疎通確認するだけなら15分もかからない。SERVERLESSすごい。
Botでできるようにしたこと
誕生花教えてくれる
疎通確認も含めて、下記記事で作った自前の誕生花APIをLINE Botが叩く
電車が遅延していたら教えてくれる
Hubot × Raspberry Pi2で電車の遅延情報をSlackに流すで作った機能を流用。LINE BotのCallback用EndpointをPOSTで叩けば、Lambdaが呼び出されるので、遅延発生時にSlackだけじゃなくLINE用EndpointにもPOSTすれば呼び出せる。ただ、LINEではユーザをmidで管理しているため、自分の普段使っているLINEアカウントのmidをデバッグで見て、マジックナンバー化してそいつに投げてる。LINE用のLambdaにcronとか埋め込んでもいいが、リクエスト回数で課金されるので、常に起動しているSlack Bot(Raspberry Pi)にポーリングさせてる。ただ、作ってからまだ電車遅延してないので動作未確認。
今後やりたいこと
結構反応が鈍いので、なんとかしたいが原因はよくわからない。いろいろ拡張したいが、仕事中はLINE使わないので、結局使わない気がする。全部Slack Botの機能になりそう。
なんか思いついたらやります。