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

使用Azure DevOps部署Python应用至Azure App Service后遇504超时问题

解决Azure DevOps部署Python应用到Linux App Service的504网关超时问题

以下是针对该问题的具体排查和修复步骤:

1. 确认应用监听配置

  • 检查Python代码中的监听设置:必须绑定0.0.0.0而非127.0.0.1,否则外部无法访问应用。例如:
    Flask应用:
    app.run(host='0.0.0.0', port=8000)
    
    Django应用:
    python manage.py runserver 0.0.0.0:8000
    
  • 确保WEBSITES_PORT应用设置的端口和代码完全匹配,设置后强制重启App Service使其生效。

2. 对齐Azure DevOps流水线的启动命令

VS Code能成功发布,说明它自动生成了正确的启动命令,直接将该命令复制到流水线配置中:

  • Zip部署:在AzureWebApp@1任务中添加startUpCommand参数,以Flask使用Gunicorn启动为例:
    - task: AzureWebApp@1
      inputs:
        azureSubscription: '<你的订阅>'
        appName: '<你的应用名>'
        package: '$(Build.ArtifactStagingDirectory)/**/*.zip'
        startUpCommand: 'gunicorn --bind=0.0.0.0:8000 app:app'
    
  • Docker部署:检查Dockerfile的CMD/ENTRYPOINT是否正确配置,示例:
    EXPOSE 8000
    CMD ["gunicorn", "--bind=0.0.0.0:8000", "app:app"]
    
    确保EXPOSE端口和应用监听端口一致,且启动命令绑定0.0.0.0。

3. 查看日志定位启动故障

  • 打开App Service的日志流,或通过Kudu(高级工具)查看/home/LogFiles下的日志文件:
    • Zip部署重点查看application.log,排查是否有依赖安装失败、启动命令报错等问题。
    • Docker部署查看docker.log,确认容器是否成功启动、应用在容器内是否正常运行。
  • 使用Azure CLI实时查看日志,快速捕捉启动时的错误:
    az webapp log tail --name <你的应用名> --resource-group <你的资源组名>
    

4. 检查运行环境一致性

  • 确认App Service的Python版本和本地开发环境完全一致(比如本地用Python 3.9,就设置App Service运行时为Python 3.9)。
  • 开启App Service的始终开启选项,避免应用因闲置被系统回收。
  • 查看App Service的“指标”面板,检查CPU、内存使用率是否过高,导致应用无法响应请求。

5. 验证容器内应用可访问性(Docker部署)

通过Kudu的SSH连接到容器,执行以下命令测试应用是否能正常响应:

curl localhost:8000

如果返回错误,说明应用在容器内未正常启动,需排查代码依赖或启动命令;如果能正常返回响应,再检查端口映射和WEBSITES_PORT配置是否正确。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 23:31:15