Python | FastAPIでAPI作成 ~その9:herokuを利用する(app作成からPostgreSQL利用まで)~
- 2022.07.28
- FAST API
![Python | FastAPIでAPI作成 ~その9:herokuを利用する(app作成からPostgreSQL利用まで)~](https://miseruit.com/wp-content/uploads/2022/07/図13-890x500.png)
今回は前回の続きで、「PaaS」を提供している「heroku」にアプリを乗せてみましょう。
ちょっと長いので、2回に分けて掲載します。
Part1:herokuで環境構築&DB作成 ←今回!
Part2:appをデプロイ&接続テスト
前回の記事は以下から↓
herokuとは?
以下がWikipediaの情報です。
ベースとなるオペレーティングシステム (OS) はDebian、もしくはDebianをベースに開発されたUbuntuである。
初期はRubyによるウェブアプリケーションフレームワークRuby on Railsのみのサポートであったが、Java、Node.js、Scala、Clojure、Python、PHP、Goなど複数のプログラミング言語をサポートするようになった。
データベースはPostgreSQL、MySQL、Cloudant(英語版)、Couchbase Server、MongoDB、Redisをサポートしている。
Heroku DNS Serverで実行されるアプリケーションは、FQDNが「アプリケーション名.herokuapp.com」となる。
Wikipediaより引用
手順
以下に手順を記載します。
①herokuにログインする
以下のURLからherokuにログインします。(アカウントは既に作成済とします)
![](https://miseruit.com/wp-content/uploads/2022/07/image-99-703x1024.png)
②アプリケーションを作成する
画面右側 New>Create new appをクリックします。
![](https://miseruit.com/wp-content/uploads/2022/07/image-100-1024x252.png)
![](https://miseruit.com/wp-content/uploads/2022/07/image-100-1024x252.png)
以下のフォームに「App name」を入力する。
region(リージョン)は United States もしくは Europe のいずれかを選択。
利用するデータセンタの場所なので、日本に近いほうがいい?
![](https://miseruit.com/wp-content/uploads/2022/07/image-101-1024x592.png)
![](https://miseruit.com/wp-content/uploads/2022/07/image-101-1024x592.png)
③PaaS上にデータベースを作成する
作成したアプリケーションで利用するDBを作成します。今回はPostgreSQLを利用します。
1:上側タブ「Resources」をクリック
![](https://miseruit.com/wp-content/uploads/2022/07/image-103-1024x477.png)
![](https://miseruit.com/wp-content/uploads/2022/07/image-103-1024x477.png)
2:Addonの検索項目で「Heroku Postgres」と入力し、検索結果を選択する
![](https://miseruit.com/wp-content/uploads/2022/07/image-104.png)
![](https://miseruit.com/wp-content/uploads/2022/07/image-104.png)
3:作成したDBは以下から参照できます。
画面右上>Data(Heroku Data)から作成したDBの一覧が確認できます。
![](https://miseruit.com/wp-content/uploads/2022/07/image-102.png)
![](https://miseruit.com/wp-content/uploads/2022/07/image-102.png)
④HerokuCLIをインストールする
データのやり取りやアプリケーションをデプロイするにあたり、HerokuCLIが必要になってきますのでインストールします。
インストールは以下のリンク先から実行できます。
![](https://miseruit.com/wp-content/uploads/2022/07/image-106-1024x398.png)
![](https://miseruit.com/wp-content/uploads/2022/07/image-106-1024x398.png)
インストーラを実行します。
![](https://miseruit.com/wp-content/uploads/2022/07/image-107.png)
![](https://miseruit.com/wp-content/uploads/2022/07/image-107.png)
⑤ローカル環境にPostgreSQLをインストールする
Heroku PostgreSQLを利用するには、ローカルにもPostgreSQLを入れておく必要があるらしく、インストールします。
以下のリンクからPostgreSQLのインストーラを取得します。
インストーラを起動して、PostgreSQLをインストールします。(当たり前ですが、ユーザ「admin」のパスワードは忘れないように・・・・私は何度か忘れたことがあります・・・・)
⑥psqlコマンドが利用できるように環境設定する
PostgreSQL 14でデフォルト設定した場合は、以下の場所にパスを通します。
C:\Program Files\PostgreSQL\14\bin
コマンドプロンプトで「psql」を実行し、ログインを求められればパスが通っています。
![](https://miseruit.com/wp-content/uploads/2022/07/image-108.png)
![](https://miseruit.com/wp-content/uploads/2022/07/image-108.png)
⑦作成したデータベースにデータを登録する
やっと準備が整いました。
HrokuCLIを利用して「Heroku PostgreSQL」に接続してみます。
1:画面右上>Data(Heroku Data)から作成したDBの一覧を表示し、接続したいDBを選択します。
![](https://miseruit.com/wp-content/uploads/2022/07/image-102.png)
![](https://miseruit.com/wp-content/uploads/2022/07/image-102.png)
2:対象のDBのDatastore>Settings>Database Credentialsを選択します。
この中の「Heroku CLI」をクリップボードにコピーします。
![](https://miseruit.com/wp-content/uploads/2022/07/image-105-1024x556.png)
![](https://miseruit.com/wp-content/uploads/2022/07/image-105-1024x556.png)
3:コマンドプロンプトを開き、先ほどのコマンドをペーストして実行します。
以下のようにDatabaseに接続できれば成功です。
![](https://miseruit.com/wp-content/uploads/2022/07/image-109-1024x205.png)
![](https://miseruit.com/wp-content/uploads/2022/07/image-109-1024x205.png)
お試し:PostgreSQLでデータ操作
テーブルを作成
create table User_list ( ID TEXT NOT NULL, Name TEXT, Class TEXT);
データを挿入
insert into User_list values('M001','Takashi','A');
insert into User_list values('M002','Hanako','A');
insert into User_list values('M003','Hiroshi','B');
insert into User_list values('M004','Kyoko','B');
データを抽出
select * from User_list
![](https://miseruit.com/wp-content/uploads/2022/07/image-111.png)
![](https://miseruit.com/wp-content/uploads/2022/07/image-111.png)
クラウド上のHerokuにデータが上がったことを確認できました!
次回はappをデプロイしていきます!
ではまた!
-
前の記事
Python | FastAPIでAPI作成 ~その8:データベース(SQLite3)と連携 2022.07.19
-
次の記事
記事がありません