こんにちは!!!クライアントエンジニアの小林です。
今回はHerokuにPythonアプリをデプロイする方法をご紹介します。
公式のチュートリアル(Heroku スターターガイド (Python) | Heroku Dev Center)もあるのですが、使用しているツールがHerokuCLIというHeroku独自+コマンド操作のもので地味に面倒です。
なので!!! もっと簡単にできるgithub環境を使っていきます。
デプロイすることまでが目的ですので、最小構成で作っていきます。
Herokuとは?
Heroku はコンテナベースのクラウド型 PaaS(サービスとしてのプラットフォーム)です。
jp.heroku.com
PaaS(Platform as a Service)とはクラウドにあるプラットフォームが利用できるサービスです。
https://www.itmanage.co.jp/column/saas-paas-iaas/www.itmanage.co.jp
AWS(Amazon Web Services)の機能を絞って扱いやすくした感じだと思っています。
AWS使ったことないんですが。
私の作業環境
- windows 10
- visual studio code
- github (リポジトリをpythonテンプレートで作っておいてください)
- source tree
環境構築に必要なファイル
main.py
import datetime as dt import pandas as pd def test(): print('hello world!!') print(dt.datetime.utcnow().strftime('%Y/%m/%d %H:%M')) print(pd.DataFrame(columns=['A', 'B', 'C'], index=[i for i in range(2)])) test()
hello world!! 2021/11/22 08:53 A B C 0 NaN NaN NaN 1 NaN NaN NaN
動作確認用のコードです。
Procfile
bot: python main.py
拡張子が無い不思議なファイルで、環境構築で一番重要でそして面倒なところです。
これはアプリの実行方法を指定しており、bot(アプリ名)はmain.pyをpythonで実行させるよ!!!と書いています。
requirements.txt
pandas==1.2.4
使用ライブラリとバージョンをセットで指定します。
sysやdatetimeなどの標準ライブラリは指定する必要がありません。
デプロイ準備
Herokuにアプリを作成
- Herokuにログイン
- 右上のnewボタンを選択
- Create new appを選択
- App nameにアプリ名を入力
- リージョンはアメリカのまま
- Create appを選択、Herokuにアプリが作成されます
Herokuとgithubの連携
リポジトリを変更したい場合
デプロイ対象のリポジトリを変えたい場合や、デプロイ対象のリポジトリを選択での手順を間違えた方向け。
- Disconnectを選択
- 再度、デプロイ対象のリポジトリを選択の手順を行う
- 以上!!!
デプロイ
手動/自動デプロイの違い
自動 | リポジトリに変更があった場合(主にプッシュ)に自動的にデプロイを実行してくれる |
手動 | デプロイボタンを押さない限りは何も起きない |
手動デプロイ手順
- Deploy Branchを選択
- ビルドログを眺めて待つ!!!
- 完了!!!
動作確認
アプリ起動
- 鉛筆アイコンを選択
- トグルボタンを選択
- Confirmを選択
- 起動完了!!!
ログ確認
- 右上のMoreを選択し、View logsを選択
- ログ見れた!!!