usomaru技術ぶろぐ

学んだことをちょこちょこメモ( ..)φ

python経験ほぼゼロの人がFastAPIをAzureにあげるまで

はじめに

最近LangChainを使っている関係でpythonを使うことが増えました。
今回pythonでWebAPIの作成とAzure App Serviceにあげるまでを見様見真似でやってみたので、備忘録を残します。

環境

python v3.11

pythonでWebAPIを作る

今回私はこちらのFastAPIを使って作ることにしました。
Swagger UIも備わっていて便利です。

fastapi.tiangolo.com

こちらに沿って必要なもののインストールとFastAPIを作ります。 (ソースコードまるコピなので省略します。)

Azure App Serviceにあげる

requirements.txtを追加します。
以下のサイトを参考に生成しました。

qiita.com

続いて、Azure PortalからApp Serviceを追加します。
Pythonのバージョンを合わせるのを忘れずに。(あってないとエラーで死にました)

ソースコードはさくっと試したかったので、Visual Studio CodeのAzure拡張機能を使ってデプロイしました。

qiita.com

デプロイできたら、構成のスタートアップコマンドに以下のように追加します。

python -m uvicorn main:app --host 0.0.0.0

※uvicornのワーカークラスでgunicornを動かす事が推奨されているらしいので、後日そっと直したいと思います。

note.com

あげて見た結果

環境変数と接続文字列

ソースコードに以下のようにかけば、Azure側で追加した環境変数と接続文字列の情報を見てくれます。

app_client_id = os.environ['APP_CLIENT_ID']

今回はまったところとエラー解消のために見ればいいところ

今回は省略していますが、Azure SQL Databaseとの接続がうまくいかず(ファイアウォールIPアドレス接続忘れ)、1日ぐらいハマりました。

このエラー画面を何十回も見た…

これまでC#で作っていたときは、F12でコンソールを見ればだいたい解決していた印象だったので、あまり見なかったのですが、ログストリームにすべての答えが書いてありました。。。

結論:ログストリームを見よう