今年のAWS summitではAWS lambdaを使ってマイクロサービスを実現する。という発表が多かった。
そういうこともあり、lambdaをちょっと触ってみた。
lambdaを使う時のネタとして、Linebotがちょうどよかったので、Linebotを使ってみた。
あとは、ちょうど身内でミニ四駆をやるときに作るミニ四駆のシャーシおみくじを作ってくれとのことで、
AWS lambda + API Gateway + Line Botでシャーシおみくじを作った。
この記事ではLine Botの使い方 というよりは、
# Line developersに登録
Line botを作成するためにはLine developersに登録が必要なので登録しておく。
登録して、Channel ID等をメモっておく。
# Lambdaの準備
AWSのコンソールにはいってLambda Management Consoleを開く
Create a Lambda functionからSelect Blue Printの画面に行く。
他になにか作るときはここから雛形を使えるっぽい。
今回は空で作りたいのでSkipを選択
Step2:Configure functionで各種設定をする。
とりあえず、 NameとRuntimeを適当に設定する。
RoleはAWSconfig roleあたりで作っておく。
そしてNextをクリック
CodeにCodeを作っておく。
今回はgithubにあげといた。
# API endpointを当てる
Add API endpointからAPI Gatewayを選択してAPI endpointを作る。
ここで注意したいのは、LineBotでは MethodがPOSTでくるので、
API GatewayでもMethodをPostにしておく。
API Endpointを作成したらLineDevelopersのCallback URLにそのURLを登録しておく。
注意点としては、LineBotでは443ポートを作るようなので443を指定しておくこと。
https://{awsapi.execute-api}.us-west-2.amazonaws.com:443 こんなかんじで
# テスト
API EndpointがVeryifyしたら、LinedevelopersにあるQRコードを読むと友達にbotを追加できるので追加する。
上のコードのサンプルでは、
1行目におみくじとして引くシャーシを,区切りで。
2行目にユーザを,区切りで入力する。
すると、ユーザに対してそのユーザが使うシャーシが選択される。
テストの際は、CloudWatchのログを見るといい。
今回はLineからの送信データをダンプしてるので、誰がどんなテキストで送ってきたかがわかる。