1
1

More than 1 year has passed since last update.

Herokuの登録・デプロイ・Webサーバ公開をやってみる

Last updated at Posted at 2021-09-26

はじめに

この記事は「Zoomライセンスの切り替えをSlackでやってみた」の一環で投稿した記事です。
この記事では、Herokuの登録・プログラムのデプロイ・Webサーバ公開をするところまでを説明します。

本記事で使っている環境

  • Windows10
  • VSCode
  • Python 3.7.1

HerokuへのAPP登録

今回外部サーバとしてHerokuを使うことしました。
Herokuを利用するにはユーザ登録が必要になりますので、簡単にですが登録方法を説明します。

Herokuアカウント作成

(1)以下のサイトより、必要事項を入力しHerokuアカウントを作成します。

image.png

(2)作成したら、登録したメールアドレスに認証メールが飛ぶので、メールのURLをクリックして、パスワードを登録します

(3)パスワード登録したら、利用規約の画面がでてくるので、内容を読んでAcceptをクリックします

image.png

これで登録完了です。

GitとHeroku CLIをインストール

以下のサイトを参考にローカルPCにGitとHerokuCLIをインストールします。1

image.png

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」をクリック
image.png

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の公式マニュアルに記載があったものをそのまま使っています。

webservice.py
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コマンドで確認できます。

runtime.txt
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/

以上で終了です。


  1. すでに登録している場合は不要です 

  2. dynoのプロセスタイプの詳細はこちらを参照>Herokuのプロセスタイプ 

  3. 本ファイル作成しない場合はHerokuでの最新バージョンでPythonが起動します 

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1