You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure App Service新增FastAPI端点无法访问问题求助

问题排查请求

我通过Docker Hub私有仓库的镜像部署了Azure App Service实例,按要求用FTPS把应用文件上传到/wwwroot目录。初始状态下API的1个端点正常运行,但之后通过FTPS修改文件并新增了一个端点,运行实例后找不到新端点,访问/docs查看Swagger文档时也未显示该端点。我确认实例内的文件是正常的,且本地Docker容器运行完全正常。当前使用的是每日限制60分钟的F1免费实例,不确定是否与此问题有关,恳请协助排查。


相关代码

路由文件

from typing import Union

from fastapi import APIRouter
from fastapi import Depends
from fastapi import HTTPException

from ..extensions.database import get_resp_dict
from ..extensions.database import get_sla_dict
from ..extensions.schemas import TaskResponsibleResponse
from ..extensions.schemas import TaskResponsibleSetterSchema
from ..extensions.schemas import TaskSlaResponse
from ..extensions.schemas import TaskSlaSetterSchema
from ..extensions.security import authenticate_request


router = APIRouter(prefix="/flow/contractmanager", tags=["Flows"])


@router.post("/")
def get_task_responsible(
    request: TaskResponsibleSetterSchema,
    resp_dict: dict = Depends(get_resp_dict),
    token: dict = Depends(authenticate_request),
) -> Union[TaskResponsibleResponse, None]:
    """Get the task responsible by directory"""
    try:
        task_responsible = resp_dict[request.directory]
    except KeyError | Exception:
        raise HTTPException(400, detail="Directory not found")

    return TaskResponsibleResponse(directory=request.directory, responsible=task_responsible)


@router.post("/sla")
def set_task_sla(
    request: TaskSlaSetterSchema, sla_dict: dict = Depends(get_sla_dict), token: dict = Depends(authenticate_request)
) -> Union[TaskSlaResponse, None]:
    """Get the task SLA by category"""
    try:
        task_sla = sla_dict[request.category]
    except KeyError | Exception:
        raise HTTPException(400, detail="Directory not found")

    return TaskSlaResponse(category=request.category, sla=task_sla)

Dockerfile

FROM python:3.11-slim

WORKDIR /app

ENV POETRY_VIRTUALENVS_CREATE=false
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

RUN apt-get update && apt-get install -y libpq-dev gcc

RUN pip install poetry

COPY . .

RUN poetry install --without dev --no-interaction --no-ansi

EXPOSE 8000

RUN chmod +x /app/docker-entrypoint.sh

CMD ["./docker-entrypoint.sh"]

docker-entrypoint.sh

#!/bin/sh

poetry run uvicorn senior.main:app --host 0.0.0.0 --port 8000

主文件代码

from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware

from .extensions.settings import config
from .routes.task import router as task_router


def create_app(title: str, description: str, routes: list) -> FastAPI:
    """App factory"""
    app = FastAPI(title=title, description=description)

    for route in routes:
        app.include_router(route)

    app.add_middleware(CORSMiddleware, allow_origins=config.origins, allow_methods=config.methods)

    return app


app = create_app(config.title, config.description, [task_router])

补充信息

  • 实例配置截图:显示Azure App Service容器部署的核心配置,包含镜像来源、启动命令等设置项
  • 本地运行截图:本地Docker容器启动后,Swagger文档中正常显示新增的/flow/contractmanager/sla端点

内容的提问来源于stack exchange,提问作者pdrferrari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 11:01:19