Python3 script を雑に heroku で動かせるようにする
手元で動かしてた python スクリプトを web サービス化したときの備忘録です。
なお python 歴はゼロから deep learning 作ったくらいです。
モチベーション
秘伝の python script があった。
手元で動かすのがめんどくなったのでどうにかしたかったが、某サーバー群で python 動かすのとかがダルかったので heroku とかに適当にホストしておきたくなった。
要件は、heroku で動くこと、python3 であること、軽く認証っぽい何かがあることくらい。
実装
misc/python_simple_server.py at master · hkdnet/misc · GitHub
だいたい書いてある通り。 do_GET
潰すの忘れてデプロイしたら普通にディレクトリ見えてビビったのでマジで注意。
検証してないけど bind アドレスを忘れるとかもありそうである1。
requirements.txt はレポジトリルートに置いといたら勝手に読んでくれた。助かる。
Procfile はこんな感じ。heroku は 2018-05-02 現在デフォでpython3なので特に気にしなくてよい。
web: python server.py
雑に検証した感じがこれ
$ curl localhost:8000 $ curl -XPOST -d "foo=bar" localhost:8000 $ curl -XPOST -H "Authorization: Bearer YOUR_TOKEN" -d "foo=bar" localhost:8000 # サーバー側のログ↓ 127.0.0.1 - - [03/May/2018 04:44:15] "GET / HTTP/1.1" 400 - 127.0.0.1 - - [03/May/2018 04:44:26] "POST / HTTP/1.1" 400 - 127.0.0.1 - - [03/May/2018 04:44:41] "POST / HTTP/1.1" 200 -
蛇足
virtualenv -p python3 .
で環境つくっておくpip install autopep8
とautopep8 -i foo.py
しとく
-
最初から
'0.0.0.0'
指定したからそれで動かないのか自信がないが↩