見出し画像

補足:Pythonによるブロックチェーン開発教本

この記事は、以下の書籍(私が制作したもの)の補足内容です。読者からの声に基づき、書籍内容の修正点や補足を記載します。


本番環境へのデプロイについて

以下の章に関わる内容です。

  • 0-4 事前準備 FastAPIのインストールとDetaアカウントの作成

  • 1-7 本番環境へのデプロイ

  • 2-4 本番環境へのデプロイ

  • 3-7 本番環境へのデプロイ

本書での本番環境でのデプロイで利用していた無料のクラウドサービスDeta Cloudが、Deta Spaceへと仕様変更されました。2023/2/14、バレンタインデーの日にアナウンスされています。

これに伴って、本番デプロイに使用するサービスとして、Render(https://render.com/)を紹介します。もちろん別のサービスを利用してもまいません。以下にRenderを利用したデプロイ手順を記載します。

書籍内で、Detaにデプロイしている部分を、Renderにデプロイする形に読み替えて、読み進めていただければ幸いです。

1 デプロイするファイルの準備

今回はサンプルファイルとして以下2ファイルを利用します。

ファイル名:main.py

from fastapi import FastAPI

app = FastAPI()

# "/"にGETメソッドでリクエストした際の処理を定義
@app.get("/")
def index():
    return {"Hello": "World"}

# "/items/{item_id}"にGETメソッドでリクエストした際の処理を定義
@app.get("/items/{item_id}")
def read_item(item_id: int):
    return {"item_id": item_id}

ファイル名:requirement.txt

😲😲😲重要ポイント😲😲😲
書籍に記載の状態から、uvicorn==0.13を追記しています。

fastapi==0.70.0
uvicorn==0.13

2 GitHubアカウント作成

まずは、GitHubのアカウントを作成してください。

3 GitHubへのソースコードのアップロード

次にGitHubへのソースコードのアップロードします。ログイン後https://github.com/newへアクセスします。

下記画像のように、Repository nameに好きな名前を入力します。Add a README fileにチェックします。その後、Create repositoryをクリックします。

Add fileUpload filesをクリックします。

オレンジのエリアにmain.pyrequirement.txtをドラッグアンドドロップし、Commit changesをクリックします。

4 Renderアカウントの作成

Renderのアカウントを作成します。

5 RenderとGitHubの連携とデプロイ

ログイン後、Newをクリックし、Web Serviceをクリックします。

Connect GitHubをクリックし、作成したGitHubのアカウントと連携します。

All repositriesを選択し、Saveをクリックします。

デプロイしたいRepositoryのConnectをクリックします。

Nameに好きな名前を入力します。Regionは想定される利用者に近いエリアを選択します。

Start Commanduvicorn main:app --host 0.0.0.0 --port 10000を入力し、価格はFreeを選択し、Create Web Serviceをクリックします。

In ProgressLiveになったらデプロイ完了です。左上のURLからアプリケーションにアクセスできます。

アクセスした画面

6 ソースコード修正時の再デプロイ方法

GitHubにログインし、右上のアイコンからYour repositoriesをクリックします。その後、アップロード先のRepository名をクリックします。

Add filesUpload filesをクリックします。

オレンジのエリアに、ソースコード修正済ファイルをドラッグアンドドロップし、Commit changesをクリックします。

Renderで自動的にデプロイ処理が開始されます。Renderのダッシュボード(https://dashboard.render.com/)にアクセスします。Deploy in progressDeploy Succeededに変わったらデプロイ完了です。

無料枠に関する公式説明

以下の内容を参考にしてください。
https://render.com/docs/free#free-web-services

この記事が気に入ったらサポートをしてみませんか?