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

Azure DevOps部署Python Function App:文件已迁移但应用未运行

解决Python V2版Azure Function DevOps部署后无运行函数的问题

核心排查方向

既然本地VS Code部署正常,问题必然出在DevOps构建/发布管道的文件结构或依赖处理环节,以下是具体修改点:


1. 构建管道:正确打包依赖包

Python V2版函数要求依赖包必须放在.python_packages/lib/site-packages目录下,否则部署后函数无法加载依赖启动。在构建步骤中添加以下命令:

pip install --target="./.python_packages/lib/site-packages" -r requirements.txt

如果用可视化编辑器,添加「Bash」或「Command Line」任务执行上述命令,注意工作目录要选函数代码所在的文件夹。

2. 构建管道:保证Artifact包含完整函数结构

你的仓库是在克隆后的子目录创建的函数工作区,需用「Copy Files」任务把函数工作区的所有文件(含子目录)复制到构建工件目录:

  • 源文件夹:填写函数工作区在仓库中的路径(比如$(System.DefaultWorkingDirectory)/func-workspace)
  • 内容:选择**(代表所有文件和子目录)
  • 目标文件夹:$(Build.ArtifactStagingDirectory)

之后用「Publish Build Artifacts」任务发布该目标文件夹的内容,确保Artifact的文件结构和本地函数工作区完全一致。

3. 发布管道:修正部署路径

在「Azure Function Deploy」任务中,「包或文件夹」要指向Artifact的根目录(比如$(System.DefaultWorkingDirectory)/drop),不能仅指向子文件夹。这样部署后,函数服务才能在根目录找到function_app.py、host.json等核心文件。

4. 验证函数应用配置

检查Azure函数应用的应用设置:

  • FUNCTIONS_EXTENSION_VERSION必须设为~4(V2版函数依赖此运行时)
  • PYTHON_VERSION要和本地开发使用的版本一致(比如3.9、3.10)

5. 确认部署包结构

下载DevOps生成的Artifact解压后,结构应如下:

drop/
├── function_app.py
├── host.json
├── requirements.txt
└── .python_packages/
    └── lib/
        └── site-packages/
            └── [所有依赖包]

如果function_app.py嵌套在子文件夹,或者.python_packages缺失,说明构建/复制步骤有误,需重新调整。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 17:40:28