FastAPI
前回、WebAPIを作るため、FastAPIを始めてみました。
で、今回はいきなりですが、実際に外部のサーバーにFastAPI用のプログラムをアップロードして、外部から実行できるかどうかを試してみます。
というのもJavaScriptでもPyScriptでもここぞというところでうまく行かずに挫折しているため、色々勉強していく前に大事なところを押さえておこうという戦略です。
実はFastAPIはPyScriptを使う前にも検討したのですが、どうやら私が契約しているXサーバーでは簡単には使えないようなので、ちょっと避けていたという背景があります。
ただ今回紹介するDeta Cloudというサーバーを使うと簡単にデプロイ(サーバーにアップロードし、世間に公開すること?)できるらしいので試してみました。
しかもDeta Cloudは無料で使えるので、試してみるハードルが低い(そして失敗しても懐が傷まない)ということもあるので、是非皆さんも試してみてくださいな。
それでは始めていきましょう。
Deta Cloudへの登録
まずはDeta Cloudへ登録していきます。
ちなみに「Data」 Cloudではなく「Deta」 Cloudで、「Data Cloud」で調べるとなかなか見つけることができないのでご注意ください。
アクセスしたら、「Join Deta」をクリック。
Detaに登録するユーザー名、パスワード、メールアドレスを入力し「Sign Up」をクリック。
メールアドレス確認のためのメールが届くので「Verify Email」をクリック。
メールの確認が済んだら「Sign in」をクリック。
ユーザー名とパスワードを入力し、ログインします。
ログインできたら早速「Create First Project」をクリックします。
とここまでは大体どんなサービスに登録するにしてもお決まりの流れでした。
ここでDetaではパソコン側にも作業が必要になります。
その作業が下の図の赤枠内に書かれていることですが、MacやLinuxならターミナル、WindowsならPowerShell(かコマンドプロンプト?)を起動し、書かれているコマンドを実行します。
このコマンドを実行することにより、ローカル環境で簡単にプログラムをアップロードできるようになります。
プログラムのアップロード
それでは早速プログラムをアップロードしていきましょう。
アップロードするプログラムは前回作成したこちらのプログラムです。
ファイル名は「main.py」とします。
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def test1():
return {"Hello": "World"}
@app.get("/test2")
def test2():
return {"Hello": "test2"}
同じフォルダ内に「requirements.txt」というファイルを作成し、「fastapi」と記述します。
fastapi
uvicornではこの「requirements.txt」というファイルは必要ありませんが、Detaでは必要となりますのでご注意ください。
そしてターミナルで「main.py」と「requirements.txt」が保存されているフォルダまで移動します。
移動したらこちらのコマンドを実行し、ターミナルからDetaにログインします。
deta login
ちなみにブラウザはSafariではダメで「Google Chrome」か「Firefox」しか受け付けてくれません。
ブラウザ上でログインに成功し、ターミナル上に「Logged in successfully.」と表示されればログイン完了です。
そして次のコマンドを実行します。
deta new --python
最後の「–python」が必要ない場合もあるようですが、とりあえず私の環境では付けないとデプロイできませんでした。
これでこんな感じの結果が表示されればデプロイ成功です。
{
"name": "test2",
"id": "e730d3d0-c7c9-403c-a44b-b94907d330c8",
"project": "c0w2d9w2",
"runtime": "python3.9",
"endpoint": "https://vrlpcw.deta.dev",
"region": "ap-southeast-1",
"visor": "disabled",
"http_auth": "disabled"
}
“endpoint”に書かれているURLがアップロードしたプログラムの「”/”」で表示されるエンドポイントです。
もしプログラム上に「”/test2″」というエンドポイントがあるとしたら、「https://vrlpcw.deta.dev/test2」にアクセスすれば良いというわけです。
デプロイしたプログラムの削除方法
デプロイしたプログラムを削除するにはDetaのウェブサイトに行き、ログインします。
すると「Micros」の下にアップロードしたプログラム名が追加されていますので、クリックします。
そして「Settings」のタブをクリックします。
「Delete Macros」のチェックボックスをチェックし、「Delete」をクリックするとこのプログラムを削除することができます。
またローカルのフォルダ内に「.deta」フォルダが作成されています。
隠しフォルダなのでターミナルでそのフォルダに移動し、「ls -a」とすると確認できます。
この中にデプロイしたプログラムの詳細含まれているようで、再度デプロイしようとすると「もうすでにデプロイされているからデプロイできないよ」と言われることがあります。
その場合はこの「.deta」フォルダを削除してやると、再度デプロイできるようになります。
これでとりあえず外部からプログラムにアクセスして、処理をさせるということができるようになりました。
次回はFastAPIで値を渡すためのパスパラメータとクエリパラメータを紹介していきます。
ではでは今回はこんな感じで。
コメント