c-bata web

@c_bata_ のメモ。python多め

AWS Lambda + API Gateway + Chalice(Python2)でLINE BOT

最近、AWS LambdaとかAPI Gatewayを触っていたのですが、 id:iktakahiro さんに教えてもらった chalice がよさそうなので試してみた。

ただサンプルを動かすだけというのも面白くないので、先日公開されたLINE BOT SDK for Pythonで遊んでみる。 AWS Lambda + API GatewayHTTPS対応が簡単にできていいですね。

f:id:nwpct1:20161017190150p:plain

ソースコード

動かし方とかはREADMEに書いてるので、API GatewayでLINE BOT動かしたい方は参考にしてみてください。

github.com

機能一覧

今のところweatherとかは普通に便利なので使えそうな感じ。

コマンド 写真
weather f:id:nwpct1:20161017183929p:plain
choice f:id:nwpct1:20161017183945p:plain
shuffle f:id:nwpct1:20161017183948p:plain
@bot message f:id:nwpct1:20161017184146p:plain
おはよう
つかれた
etc...
f:id:nwpct1:20161017185332p:plain

ZappaとChaliceについて

AWS LambdaとAPI Gatewayで何かサーバアプリケーションを動かすとき、Pythonだと次の2つのフレームワークが人気みたいです。

Zappaは、API GatewayからLambdaに渡されるEventをWSGI Environに変換しているものなので、FlaskやDjangoのようなWSGIフレームワークが動かせます。あとはデプロイ時に各フレームワークのURL定義からAWS CloudFormation用のファイルを生成して、API Gatewayの設定をやってくれているみたいです。

chaliceはZappaとは違ってWSGIに変換せず、API Gatewayに特化しています。 無駄なことしていないだけあって、ソースコードも分かりやすいですね。 Zappaの場合は、Flaskの機能でもAPI Gatewayを通して本当に動くのか考えないといけませんが、chaliceドキュメンテーションに書いてある機能はちゃんと動く安心感もありますね。

追記: LINE BOT SDK for PythonWikiに載せてもらえた

Projects Using SDK · line/line-bot-sdk-python Wiki · GitHub

に載せてもらえた。 今のところ自分のものだけですが、たくさん集まるといいですね。

Amazon Web Services クラウドネイティブ・アプリケーション開発技法 一番大切な知識と技術が身につく (Informatics&IDEA)

Amazon Web Services クラウドネイティブ・アプリケーション開発技法 一番大切な知識と技術が身につく (Informatics&IDEA)

  • 作者: NRIネットコム株式会社,佐々木拓郎,佐藤瞬,石川修,高柳怜士,佐藤雄也,岸本勇貴
  • 出版社/メーカー: SBクリエイティブ
  • 発売日: 2016/04/20
  • メディア: 単行本
  • この商品を含むブログ (1件) を見る