如何使fastapi文档与部署在aks中的docker容器一起工作?

问题描述

正在运行的测试端点:baseurl / ds-clm-Metadata-aks / test

OpenAPI有效json:baseurl / ds-clm-Metadata-aks / openapi.json

本地容器运行正常:localhost:4557 / docs,localhost:4557 / docs

理想的文档应该在以下位置呈现:baseurl / ds-clm-Metadata-aks / docs

但是给出以下错误

enter image description here

Redoc网址:baseurl / ds-clm-Metadata-aks / redoc,给出错误

enter image description here

"""This package contains functions for Metadata attribute extraction"""
from fastapi import FastAPI,Request

app = FastAPI()


@app.get("/test")
async def index(request: Request):
    return {"Api is running"}
  
import uvicorn

from dsclm.Metadata import endpoints


if __name__ == "__main__":
    uvicorn.run("dsclm.Metadata:app",host='0.0.0.0',port=4558,reload=True,debug=True,workers=3)

解决方法

我可以看到发生了什么。您忘记在Uvicorn或FastAPI应用程序构造函数中设置“ root_path”参数。这就增加了您所看到的。

请在Uvicorn部分(推荐)或FastAPI部分(缺点)中调整“ root_path”。阅读此内容可获得完整说明:https://fastapi.tiangolo.com/advanced/behind-a-proxy