AWSのLambdaをPythonで書きたい場合、Serverlessも便利ですがZappaならもっと簡単です。ただしセットアップに(いくつか)落とし穴があります。
検証環境
- Python 3.6.4
- pyenv + venv
- High Sierra
pipを9.0.1にする
zappaを実行すると、
AttributeError: 'module' has no attribute 'get_installed_distributions'
というエラーが出る場合があります。pipのバージョンを下げることで解消されます。
pip install pip==9.0.3
詳細
https://github.com/Miserlou/Zappa/issues/1471
Zappaを0.45.1にして、venvにインストールする
zappaでデプロイしても、
Error: Warning! Status check on the deployed lambda failed. A GET request to '/' yielded a 502 response code.
のようにエラーになってしまう場合があります。zappa tailしてみると、
Unable to import module 'handler': No module named builtins
というようなエラーが出ている場合は、zappaのバージョンを下げることで解消されます。
また、次のようなエラーが出る場合は、
Unable to import module 'handler': attempted relative import with no known parent package
venvの中でpip install zappa==0.45.1とすることで解消されます。