1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Python 不動産ライブラリAPIを使ってみる デプロイ編

Posted at

前回のお話 ⇒ コーディング編

streamlitで作ったアプリをデプロイする方法について書く。
デプロイとはサーバー上に展開し、誰でもアクセスできるようにすることである。

目次:
1.デプロイ方法は、1つだけではない
2.Streamlit Sharingとは
3.Githubでの作業
4.ディレクトリ構造と秘匿情報(APIキー等)の取扱い
5.Streamlit Community Cloudでの作業(デプロイ)
6.まとめ

1.デプロイ方法は、1つだけではない

Streamlitで作成したアプリをデプロイする方法はいくつかあるらしい。

① Streamlit Sharingでデプロイ
② Dockerを使ったデプロイ(AWS, GCP, Azureなどのクラウドサービス上でホスト可能)
③ Herokuでデプロイ
④ 自前サーバーや**VPS(仮想専用サーバー)**でのデプロイ

今回、最も簡単にデプロイできて、初心者でもわかりやすい方法としてStreamlit Cloudによるデプロイをやってみる。

2.Streamlit Sharingとは

Streamlit SharingはStreamlit社が提供する専用のクラウド環境で、無料で簡単にデプロイができ、設定も少なく済むため初心者にもおすすめ。
Streamlit Community Cloud

少し調べてみたところ、利用にあたってはgithubへの登録が必要。
アカウント作ってない場合はサインアップしておくこと。
Git hub

3.Githubでの作業

1.Githubへサインインし、新しいリポジトリを作成する(Newボタンを押す)
image.png
2.リポジトリの基本情報を入力
以下の項目を入力し、Create repositoryを押す

Repository name:リポジトリ名
Public/Private:リポジトリの公開範囲

自分以外の人にもアプリを公開する場合、リポジトリの公開範囲についてはPublicにしておくこと。

image.png
Githubでの作業はこれだけ

4.ディレクトリ構造と秘匿情報(APIキー等)の取扱い

ここからはGitコマンドを用いた作業となる。
Git詳細 ⇒ Gitとは

Githubへプッシュする前に、以下をディレクトリに追加する。

.streamlit および secrets.toml ⇒ 秘匿情報の格納場所(APIキー等)
.gitignore ⇒ Gitで未追跡にしたいファイル情報を書く場所
requirements.txt ⇒ 作成したアプリに使っているモジュールのバージョン情報

requirements.txtについて ⇒ コマンド一行でpythonのrequirements.txtを生成する

my_project/
│
├── main.py
├── __init__.py
├── .gitignore  ← Gitで未追跡にしたいファイル情報を書く場所
├── requirements.txt  ← 作成したアプリに使っているモジュールのバージョン情報
│
├── src/
│   ├── __init__.py
│   ├── pref_data.py
│   ├── send_api.py
│
├── .streamlit/  ← 追加
    ├── secrets.toml  ← 秘匿情報の格納場所(APIキー等)

.streamlit/secrets.tomlにAPIキーを格納

.streamlit/secrets.toml
api_key = "YOUR_API_KEY"

.streamlitフォルダをGitの追跡対象から除外設定する

.gitignore
.streamlit/

requirements.txtを生成する

.requirements.txt
pandas==X.X.X
requests==X.X.X
streamlit==X.XX.X

Gitプッシュする前に、.streamlitが 未追跡 になっているか必ず確認する。
確認後、作成したリポジトリにプッシュする。
(追跡対象だった場合、秘匿情報がGithubで公開されてしまう)

5.Streamlit Community Cloudでの作業(デプロイ)

Streamlit Community Cloudへ「Sign in」する。
(アカウント登録まだの場合は、Sign up
image.png

右上の「Create app」を押す。
image.png

Deploy a public app from GitHub」を選択する。
image.png

以下の項目を入力し、「Advanced settings」を押す。

Repository:作成したアプリをプッシュしたリポジトリ名
Branch:ブランチ名(分岐してなければmain)
Main file path:メインスクリプト(今回の場合、main.py)
App URL(optinal):任意のURL

image.png

Advanced settings」にて、以下の項目を入力し、「Save」を押す。

Pythonversion:アプリ作成に使用したPythonのバージョン
Secrets:secrets.tomlの内容をそのまま転記

image.png

Deploy」を押す。
image.png
デプロイ後、設定したURLへアクセスし、閲覧できればデプロイ完了。
今回作成したアプリ

6.まとめ

検討~デプロイまでの一連の流れを、ハンズオン形式で行うことで、「ネット上に公開する」みたいな抽象的にしかわからなかった部分がクリアになり、想いを形にできるスキルが向上したと感じる。
今後も学習を継続したい。

1
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?