AWS Lambda でGitHubのNewsFeedをTwitterに流す

前にGitHubのNewsFeedをTwitterで見たいなぁと思ってRubyで実装したものをHerokuで動かしていたのですが、AWS Lambdaがスケジュール実行できるようになったとのことで移行しました。

Pythonもサポートされたようなので、せっかくなので試す。AWSへの反映はこちらのページが参考になりました。

qiita.com

AWS Lamdaがサポートしているのは、Python2.7のようです!

プロジェクトディレクトリを作って、pyenvで2.7系に変えて、pipでライブラリをディレクトリ内にインストール。

$ cd my_project
$ pyenv local 2.7.8 
$ pip install requests -t .
$ pip install python-twitter -t .

コードはこんな感じ。140字で収めるためにゴニョゴニョしてます(あとPythonで文字列が日時のフォーマットになってるか調べる方法が分からなかった・・・)。

zipで固めて

zip -r ~/awslambda.zip *

AWSへアップロードして、AWS Lambdaの「Configuration」にある「Handler」で上のコードのlambda_handlerメソッドを指定、「Event Sources」で Schedule Event を登録すれば完了!