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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 03:34:59