無料のクラウドサービスDeta Cloudが、Deta Spaceへと仕様変更されました。2023/2/14、バレンタインデーの日にアナウンスされています。
https://deta.space/from-cloud
この記事では、仕様変更後のPythonアプリのデプロイ方法について、簡素なサンプルアプリを例として説明します。
初回デプロイ方法
アカウント登録
公式サイト(https://deta.space/)でアカウントを作成します。
Access Tokenの取得
作成したアカウントでログインしAccess Tokenを取得します。
まず、ログイン後のダッシュボード画面下方の検索ボックスからSettingをクリックします。
表示されるランダムな英数文字列(青色部分)をコピーしておきます。このTokenはアプリを開発するための情報のため、他人には共有しないでください。
補足:画面をCloseすると、Tokenは再確認できません。再度、Generate Tokenをクリックし、異なるTokenを再発行してください。
デプロイするアプリの準備
今回はサンプルとして以下の2ファイルを準備します。
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def index():
return {"Hello": "ahhhhh!"}
fastapi==0.70.0
CLIのインストール
コマンドラインで、Spaceコマンドを利用するために、専用のCLIをインストールします。
Windowsの場合
iwr https://get.deta.dev/space-cli.ps1 -useb | iex
Macの場合
curl -fsSL https://get.deta.dev/space-cli.sh | sh
space login
Spaceコマンドで、Deta Spaceへログインします。デプロイしたいアプリのディレクトリ(main.pyとrequirement.txtを格納しているディレクトリ)でspace loginを実行します。
space login
Access Tokenの入力を求められます。発行したAccess Tokenの入力してEnterします。
ログインに成功すると「👍 Login Successful!」が表示されます。
space new
Spaceコマンドで、プロジェクトという単位(アプリごとに作成するもの)を作成します。デプロイしたいアプリのディレクトでspace newを実行します。
space new
アプリの名前を問われます。自由に入力してEnterします。デフォルトではフォルダ名が入力されます。
この設定で実行しますか?と問われます。そのままEnterします。
Spacefileを編集:公開設定
space newのあと、いくつかファイルが自動生成されます。
そのうちの「Spacefile」というファイルを編集します。
一番下にpublic: trueを追加します。これが他の人でもアクセスできる設定です。
# Spacefile Docs: https://go.deta.dev/docs/spacefile/v0
v: 0
micros:
- name: testapp
src: .
engine: python3.9
primary: true
public: true
space push:WEB公開
ソースコードをアップロードします。デプロイしたいアプリのディレクトでspace pushを実行します。
space push
青文字の部分が発行されたURLです。
以上のステップで、だれもがアクセス可能な状態でWEB公開されます。
space release:アプリのリリース
スマホアプリのような、インストール可能なアプリをリリースすることも可能です。
デプロイしたいアプリのディレクトでspace releaseを実行します。
space release
space pushしたバージョンの中で最新のものをリリースしますか?と問われます。そのままEnterします。
アプリへのアクセス
space releaseの出力結果に表示されている赤枠のURLにアクセスします。
ソースコード修正時の再デプロイ方法
ソースコードを修正したのち、space pushを再度実施することで、修正版ソースコードをデプロイできます。
さらに、space releaseのプロセスを再度実施することで、修正版のアプリをデプロイできます。
一般ユーザーがアプリにアクセスする方法
一般ユーザーがアプリにアクセスするには、そのユーザーもDeta Spaceのアカウントを作成する必要があります。アプリ作成者は、一般ユーザーにspace releaseの出力結果に表示されている赤枠のURLを共有します。
一般ユーザーが、提供されたURLにアクセスします。Install on Spaceをクリックすると、Deta Spaceのアカウント情報の入力を求められます。
ログイン後、前述の「アプリへのアクセス」と同様の手順を実施します。
自著の内容変更に関するお知らせ
著書のブロックチェーン開発教本(私が制作したもの)もDetaを使っていたので、本番デプロイに関する情報を補足しました。著書の場合はDetaへAPIとしてデプロイしていたので、代替サービスとしてRenderを推奨する形にしました。
書籍↓
補足↓