やりたいこと
AlmaLinux8.5でFastAPIのローカル開発環境を構築したい。
FastAPI
https://fastapi.tiangolo.com/ja/
AlmaLinux8.5 Download
https://mirrors.almalinux.org/isos/x86_64/8.5.html
前提
- AlmaLinux8.5が最小構成以上でインストール済みであること。
- SSH接続できること。
- root権限が使えること。
環境
- ホストOSはWindows11で、VirtualBoxを利用。
- ネットワーク構成はブリッジアダプターを設定。ホストOSからプライベートIPアドレスでAlmaLinuxにSSH接続可能かつ、AlmaLinuxからインターネットに接続可能。
手順
SSH接続し、root権限で実行する。
python39インストール
dnf -y update
dnf -y install python39 python39-devel
pythonバージョン確認
python3 --version
pipバージョン確認
pip3 -V
SELinux無効化
setenforce 0
vi /etc/selinux/config
SELINUX=enforcing
を
SELINUX=disabled
に修正。
ポート開放
firewall-cmd --zone=public --add-port=8000/tcp --permanent
firewall-cmd --reload
FastAPIインストール
pip3 install fastapi[all]
API実装
su yamato
cd /home/yamato
vi main.py
main.py
import uvicorn
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello FastAPI. I am Yamato."}
@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
return {"item_id": item_id, "q": q}
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8000)
API起動
python3 main.py
ブラウザからアクセス
AlmaLinuxのIPアドレスが
192.168.1.11
の場合、ホストOS(Windows11)からブラウザで
http://192.168.1.11:8000
にアクセスする。
http://192.168.1.11:8000/items/123?q=abcde