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

Azure Web App中FastAPI部署后如何启动Uvicorn服务

解决Azure Web App部署FastAPI后无法启动Uvicorn的问题

核心问题

Azure Web App不会自动识别FastAPI的启动逻辑,需明确指定ASGI服务器启动命令,同时确保依赖环境配置正确。

解决方案步骤

1. 确认依赖包含Uvicorn

检查requirements.txt文件,确保已添加Uvicorn依赖(建议指定稳定版本):

uvicorn==0.24.0.post1
# 其他依赖...

若未添加,部署后服务器无法识别uvicorn命令。

2. 配置Azure Web App启动命令

两种配置方式任选其一:

方式一:通过GitHub Actions自动配置

在deploy阶段的「Deploy to Azure Web App」步骤前,添加Azure CLI命令设置启动参数:

- name: Set startup command for Web App
  uses: azure/cli@v2
  with:
    inlineScript: |
      az webapp config set --name 'xx-xx-xx' --resource-group <你的资源组名称> --startup-file "uvicorn main:app --host 0.0.0.0 --port ${PORT:-8000}"

替换<你的资源组名称>为实际Azure资源组名,xx-xx-xx为你的Web App名称。

方式二:Azure Portal手动配置

  1. 登录Azure门户,进入目标Web App资源
  2. 左侧导航栏选择「配置」→「常规设置」
  3. 在「启动命令」栏填入:uvicorn main:app --host 0.0.0.0 --port ${PORT:-8000}
  4. 点击「保存」并重启Web App

3. 优化部署流程(可选)

原打包解压步骤可简化,azure/webapps-deploy支持直接部署文件:

# 替换build阶段的zip和upload步骤
- name: Upload deployment artifact
  uses: actions/upload-artifact@v4
  with:
    name: python-app
    path: |
      ./*
      !venv/
# 替换deploy阶段的解压步骤,直接部署
- name: 'Deploy to Azure Web App'
  uses: azure/webapps-deploy@v3
  id: deploy-to-webapp
  with:
    app-name: 'xx-xx-xx'
    slot-name: 'Production'
    package: ./python-app

4. 关键注意项

  • 必须指定--host 0.0.0.0:否则Uvicorn仅绑定本地回环地址,外部无法访问
  • 使用${PORT:-8000}:Azure Web App会动态分配端口,通过环境变量PORT传递, fallback到8000保证兼容性
  • 修改启动命令后必须重启Web App才能生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 14:53:20