[LINEBOT] Herokuへデプロイ ③
はじめに
筆者は、アルバイトでシステム開発を行っている九州大学の大学院生です。
本格的に開発を行っているのは1年ほどです。
対象となるのは「開発経験がほとんどないがLINEBOTで遊んでみたい学生」なので
開発したことたくさんあるよーって人は公式ドキュメントみた方がいいです..💦
記事は複数に分けて投稿しようかな?と思っているので
随時追加していきます!
github
投稿内容(予定)
- LINEアカウントを作成 @ LINE Developers
- Python 基本設定ファイルの作成
- おうむ返しBOT作成
- ローカルで動作確認
- Heroku にデプロイする
- リッチメニューの設定方法
- ユーザごとにLINEBOTの返信内容を変えてみる
本記事では以下の内容を紹介していきます
⑤ Heroku にデプロイする
3. Herokuへデプロイする
3-1 アプリケーションの作成
全てコマンドから作成もできますが、GUIの方がわかりやすいので作成はこちらを使用します
Heroku にアクセスしてログインする
3-1-13-1-2 Create New App からアプリケーションを作成(画像参照)
3-2 Heroku ログイン
Heroku CLIをインストール
3-2-1 ターミナルからherokuにアクセスできるように3-2-2 heroku にログイン (メールアドレスとパスワードを入力)
heroku login -i
3-2-3 Buildpacks
今回はPythonアプリケーションをデプロイするため以下のコマンドを実行してください
heroku buildpacks:set heroku/python -a ApplicationName
→ Application Name
には先ほど作成したアプリケーションの名前を入れてください
3-3 Heroku 環境変数設定
LINEBOTを heroku にデプロイするにあたって
ローカルで設定していた環境変数をherokuに設定する必要があります
GUIから設定することもできますが、
既に.env
ファイルを作成しているので、これをherokuにpushします
3-3-1 プラグイン heroku-config をインストール
heroku plugins:install heroku-config
.env
をHerokuと同期させる
3-3-2 ローカルのheroku config:push -a ApplicationName
3-3-3 環境変数の確認
以下のコマンドで設定中の環境変数を確認できます
heroku config -a ApplicationName
3-4 Heroku デプロイ設定
作成したコードをHerokuにアップロードすることを"デプロイ"といいます
今回は、「GitHubにコードがプッシュされたら 自動でデプロイする」 ように設定します
Heroku にログインして作成したアプリケーションのページに移動します
その後、Deployから DeploymentMethod
と ConnectToGitHub
の設定を行います
- 自動デプロイ:
Automatic deploys
でブランチを選択(画像ではmasterが更新されたらデプロイします)、Enable Automatic Deploys
をクリック - 手動デプロイ:
Manual deploy
でブランチを選択、Deploy Branch
をクリック
3-5 コード設定
Heorkuにデプロイするには以下のファイルが必要になります
今回はPythonアプリケーションをデプロイします
必要なファイルと階層構造
.
├── main.py
├── requirements.txt
├── Procfile NEW
├── runtime.txt NEW
├── .env
├── .gitignore
Procfile
Procfileは、アプリケーションのルートディレクトリにあるテキストファイルです。このファイルを使って、アプリの起動時に実行するコマンドを明示的に宣言します。
web: gunicorn -b 0.0.0.0:$PORT main:app
runtime.txt
Python のバージョンを指定します
python-3.9.0
推奨されているバージョンは確認してみてください! Here
requirements.txt
Procfile で記載した gunicorn を追記
Flask
line-bot-sdk
python-dotenv
gunicorn
これらを作成した後、gitにpushすることでデプロイが始まります。
git add .
git commit -m "Heroku 設定"
git push origin master
3-6 Webhookの登録
LINE Developers に移動し
https://ここはアプリケーションの名前.herokuapp.com/callback
をwebhook に登録します
Verifyを押して 200
が表示されたら成功です!!!!
LINEBOTを確認すると正常に動作していると思います。
デバッグ作業をするには...?
Herokuにデプロイしているとなぜか動かない時がたくさんあります...
ログを確認するにはローカルから以下のコマンドを実行してください
heroku logs --tail -a ApplicationName
おわりに
今回は LINEBOT をHerokuにデプロイしてみました!
ここまでで、LINEBOTが誰にでも利用してもらえるようになりました
Herokuの設定をさらに行うことで 30秒のスリープを回避することもできるのでまた紹介しようと思います
ありがとうございました!
Kaze Shindo
iQLab Engineer
Discussion