はじめに
この記事は**「Zoomライセンスの切り替えをSlackでやってみた」**の一環で投稿した記事です。
この記事では、Herokuの登録・プログラムのデプロイ・Webサーバ公開をするところまでを説明します。
本記事で使っている環境
- Windows10
- VSCode
- Python 3.7.1
HerokuへのAPP登録
今回外部サーバとしてHerokuを使うことしました。
Herokuを利用するにはユーザ登録が必要になりますので、簡単にですが登録方法を説明します。
Herokuアカウント作成
(1)以下のサイトより、必要事項を入力しHerokuアカウントを作成します。
(2)作成したら、登録したメールアドレスに認証メールが飛ぶので、メールのURLをクリックして、パスワードを登録します
(3)パスワード登録したら、利用規約の画面がでてくるので、内容を読んでAcceptをクリックします
これで登録完了です。
GitとHeroku CLIをインストール
以下のサイトを参考にローカルPCにGitとHerokuCLIをインストールします。1
Herokuにアプリを作成する
(1)PCのコンソールを起動する(Windows の場合PowerShellでOK)
(2)Heroku CLIでHerokuにログイン
コンソールよログインコマンドを実行する
heroku login
実行すると以下のように表示されるので「q」以外の文字を入力(Enterとかでいい)
heroku: Press any key to open up the browser to login or q to exit:
待っているとブラウザで以下の画面が表示されるので、「Log in」をクリック
CLIの画面で以下のように表示されたらOKです。
Opening browser to https://cli-auth.heroku.com/auth/cli/browser/30e73db4-55a4-4289-8332-********?requestor=・・・・・・
Logging in... done
Logged in as @
(3)Heroku CLIでアプリを作成する
CLIより以下のコマンドを実行する(<アプリ名は任意>)
heroku create <アプリ名>
以下ように表示されたらOKです
Creating ⬢ <アプリ名>... done
https://<アプリ名>.herokuapp.com/ | https://git.heroku.com/<アプリ名>.git
デプロイ・Webサーバ公開
では、早速Herokuに作成したアプリにデプロイし、Webサーバを公開します。
とりあえずWebサーバとして最低限の実装ができればいいので、URLにアクセスしてHello Wordが表示されるまでを実装します。
1.プログラムフォルダ作成・GitRepository初期化
プログラム用のフォルダを作成し、GitRepositoryを初期化します。
> mkdir <アプリ名>
> cd <アプリ名>
> git init
> heroku git:remote -a <アプリ名> #ローカルリポジトリにリモートを簡単に追加
2.アプリ開発
今回、Webサーバのエンジンとしてbottle
を使うので、bottleのライブラリをインストールします。
pip install bottle
ライブラリをインストールしたら、Webサーバを起動するコードを実装します。
なお、このコードはbottleの公式マニュアルに記載があったものをそのまま使っています。
import os
from bottle import route, run
@route("/")
def hello_world():
return "Hello World!"
run(host="0.0.0.0", port=int(os.environ.get("PORT", 5000)))
3.Herokuのデプロイに必要なファイルを作成
HerokuでWebサービスを起動するに最低限以下のファイルが必要です。
- requirements.txt #依存ライブラリを定義したファイル
- Procfile #起動時に実行するアプリタイプとコマンドを定義したファイル
- runtime.txt #Pythonの起動バージョンを定義したファイル
requirements.txt
コンソールより以下のコマンド実行して作成します。
pip freeze > requirements.txt
pip freeze
はPython環境にインストールされているライブラリをリストを出力するコマンドです。Herokuではrequirements.txt
に定義されているライブラリをデプロイ時にインストールしているようです。
Procfile
コンソールより以下のコマンド実行して作成します。
echo web: python webservice.py > Procfile
この定義はWebタイプのdyno(コンテナ)2としてpython webservice.py
のコマンドを実行するという意味です。
runtime.txt 3
開発に使用しているPythonバージョンを以下のように記述します。
※使用しているPythonバージョンはpython -V
コマンドで確認できます。
python-3.9.1
4.デプロイ
作成したアプリをHerokuにデプロイします。
デプロイはGitにPushするだけです。
> git add .
> git commit -m "commit"
> git push heroku master
以下のように表示されたらOKです。
remote: Verifying deploy... done.
To https://git.heroku.com/<アプリ名>.git
- [new branch] master -> master
5.テスト
Webサービスが起動してるはずなので、URLにアクセスし、Hello Worldが表示されればOKです。
https://<アプリ名>.herokuapp.com/
以上で終了です。
-
すでに登録している場合は不要です ↩
-
dynoのプロセスタイプの詳細はこちらを参照>Herokuのプロセスタイプ ↩
-
本ファイル作成しない場合はHerokuでの最新バージョンでPythonが起動します ↩