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

部署后通过Azure Functions访问FastAPI端点出现404错误求助

解决Azure Function App部署FastAPI后端点404问题

1. 修正Extension Bundle版本

你的host.json中Extension Bundle版本为[2.*, 4.0.0),但Azure Functions Runtime 4.x(适配Python 3.8+环境)需要搭配Extension Bundle 3.x版本,版本不匹配会导致ASGI路由转发异常。

修改host.json中的配置:

"extensionBundle": {
  "id": "Microsoft.Azure.Functions.ExtensionBundle",
  "version": "[3.*, 4.0.0)"
}

修改完成后重新部署Function App。

2. 显式设置FastAPI的root_path

Azure环境可能存在隐藏路径前缀,即使已将routePrefix设为空,显式指定root_path可确保FastAPI正确识别路由:

修改WrapperFunction/__init__.py中的FastAPI初始化代码:

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

origins = ["*"]
# 从环境变量获取路由前缀,默认值为空
root_path = os.getenv("HTTP_ROUTE_PREFIX", "")
app = FastAPI(root_path=root_path)

# 后续中间件、路由代码保持不变

3. 验证部署包完整性

确保部署到Azure的包包含所有必要文件:

  • 根目录下的function_app.py、host.json、requirements.txt
  • WrapperFunction文件夹及其内部的__init__.py

如果用VS Code部署,检查.vscode/settings.json中的azureFunctions.deploySubpath是否指向项目根目录;如果用Azure CLI部署,使用以下命令确保完整打包:

func azure functionapp publish <你的应用名称> --build remote

4. 本地测试验证逻辑

在本地执行func start启动测试服务器,访问http://localhost:7071/sample:

  • 若本地也返回404:检查FastAPI路由代码是否存在拼写错误(比如/sample定义是否正确)
  • 若本地正常:说明部署过程存在文件遗漏,重新部署并确认所有文件已上传

5. 通过Azure日志排查问题

登录Azure Portal进入你的Function App,依次点击Monitoring > Logs,查看访问/sample时的日志输出:

  • 检查是否存在模块导入错误、FastAPI初始化异常等信息
  • 确认请求是否被正确转发到FastAPI应用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 17:33:22