Python | FastAPIでAPI作成 ~その9:herokuを利用する(app作成からPostgreSQL利用まで)~
- 2022.07.28
- FAST API
今回は前回の続きで、「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にログインします。(アカウントは既に作成済とします)
②アプリケーションを作成する
画面右側 New>Create new appをクリックします。
以下のフォームに「App name」を入力する。
region(リージョン)は United States もしくは Europe のいずれかを選択。
利用するデータセンタの場所なので、日本に近いほうがいい?
③PaaS上にデータベースを作成する
作成したアプリケーションで利用するDBを作成します。今回はPostgreSQLを利用します。
1:上側タブ「Resources」をクリック
2:Addonの検索項目で「Heroku Postgres」と入力し、検索結果を選択する
3:作成したDBは以下から参照できます。
画面右上>Data(Heroku Data)から作成したDBの一覧が確認できます。
④HerokuCLIをインストールする
データのやり取りやアプリケーションをデプロイするにあたり、HerokuCLIが必要になってきますのでインストールします。
インストールは以下のリンク先から実行できます。
インストーラを実行します。
⑤ローカル環境にPostgreSQLをインストールする
Heroku PostgreSQLを利用するには、ローカルにもPostgreSQLを入れておく必要があるらしく、インストールします。
以下のリンクからPostgreSQLのインストーラを取得します。
インストーラを起動して、PostgreSQLをインストールします。(当たり前ですが、ユーザ「admin」のパスワードは忘れないように・・・・私は何度か忘れたことがあります・・・・)
⑥psqlコマンドが利用できるように環境設定する
PostgreSQL 14でデフォルト設定した場合は、以下の場所にパスを通します。
C:\Program Files\PostgreSQL\14\bin
コマンドプロンプトで「psql」を実行し、ログインを求められればパスが通っています。
⑦作成したデータベースにデータを登録する
やっと準備が整いました。
HrokuCLIを利用して「Heroku PostgreSQL」に接続してみます。
1:画面右上>Data(Heroku Data)から作成したDBの一覧を表示し、接続したいDBを選択します。
2:対象のDBのDatastore>Settings>Database Credentialsを選択します。
この中の「Heroku CLI」をクリップボードにコピーします。
3:コマンドプロンプトを開き、先ほどのコマンドをペーストして実行します。
以下のようにDatabaseに接続できれば成功です。
お試し: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
クラウド上のHerokuにデータが上がったことを確認できました!
次回はappをデプロイしていきます!
ではまた!
-
前の記事
Python | FastAPIでAPI作成 ~その8:データベース(SQLite3)と連携 2022.07.19
-
次の記事
記事がありません