Azure Python V2函数应用生产环境无函数可用求助(疑模块损坏)
解决Azure Functions Python V2生产环境模块损坏导致无函数加载的问题
问题背景
我有一个用于CMS的Python V2 Azure Function应用,依赖包如下(requirements.txt):
azure-storage-blob pytz python-dotenv azure-search-documents azure-storage-file-share aiohttp requests beautifulsoup4
对应的function_app.py、host.json代码在本地及我的开发Azure环境中运行正常,但通过Azure DevOps流水线部署到客户生产环境后出现异常:
- Kudu部署日志显示部署成功,但Function应用概览中无函数显示,文件也不可见
- 错误日志提示:
No job functions found. Try making your job classes and methods public - 上传简单健康检查脚本也无法部署成功,怀疑生产环境模块损坏,但客户不愿新建资源,需要移除旧的损坏模块以解决问题
清理旧模块与修复步骤
1. 通过Kudu控制台手动清理依赖与缓存
- 登录Azure门户,进入目标Function应用,点击左侧菜单的高级工具(Kudu)打开控制台
- 执行以下命令删除旧环境与缓存文件:
# 进入应用根目录 cd site/wwwroot # 删除默认虚拟环境 rm -rf .venv # 删除Python编译缓存 rm -rf __pycache__ find . -name "*.pyc" -delete find . -name "*.pyd" -delete
2. 重置部署缓存配置
- 进入Function应用的配置 -> 应用程序设置,添加或更新以下两项:
- 键:
WEBSITE_DISABLE_SCM_SETSYSTEMPYTHON,值:1 - 键:
SCM_DO_BUILD_DURING_DEPLOYMENT,值:1
- 键:
- 保存设置后,重启Function应用
3. 强制重新部署并清理目标目录
- 在Azure DevOps流水线的部署任务中,勾选Remove additional files at destination选项(清理目标目录多余文件)
- 重新触发流水线部署,让系统重新构建虚拟环境并安装全新依赖
4. 验证依赖安装状态
- 部署完成后,回到Kudu控制台的调试CMD,执行命令验证依赖:
# Linux环境 source .venv/bin/activate && pip list # Windows环境 .venv\Scripts\activate && pip list - 确认所有依赖包版本与开发环境一致,且无缺失
内容的提问来源于stack exchange,提问作者SizzlyGrizzly
相关产品推荐
相关产品推荐

