Azure Function Python部署(Oryx构建)卡在pip install步骤
Azure Function部署卡在"Running pip install..."步骤的解决思路
环境信息
本地环境
- Windows 10
- VS Code 1.82.2
- Python 3.9.10
- Azure Function Core Tools 4.0.5390
Azure环境
- 两个函数应用(dev/prod)
- 均使用运行时版本~4
- 均运行在P2v2规格的App Service Plan上
问题描述
从本地部署到Azure时,VS Code输出窗口推进到Running pip install...步骤后停滞,从未完成。部署日志如下:
11:53:56 PM <function name removed>: Starting deployment... 11:53:56 PM <function name removed>: Creating zip package... 11:54:00 PM <function name removed>: Zip package size: 17.6 MB 11:54:05 PM <function name removed>: Fetching changes. 11:54:06 PM <function name removed>: Cleaning up temp folders from previous zip deployments and extracting pushed zip file <removed>.zip (16.84 MB) to /tmp/zipdeploy/extracted 11:54:09 PM <function name removed>: Updating submodules. 11:54:10 PM <function name removed>: Preparing deployment for commit id <removed>. 11:54:10 PM <function name removed>: PreDeployment: context.CleanOutputPath False 11:54:10 PM <function name removed>: PreDeployment: context.OutputPath /home/site/wwwroot 11:54:10 PM <function name removed>: Repository path is /tmp/zipdeploy/extracted 11:54:10 PM <function name removed>: Running oryx build... 11:54:10 PM <function name removed>: Command: oryx build /tmp/zipdeploy/extracted -o /tmp/build/expressbuild --platform python --platform-version 3.9.7 -i <removed> -p packagedir=.python_packages/lib/site-packages 11:54:11 PM <function name removed>: Operation performed by Microsoft Oryx, https://github.com/Microsoft/Oryx 11:54:11 PM <function name removed>: You can report issues at https://github.com/Microsoft/Oryx/issues 11:54:11 PM <function name removed>: Oryx Version: 0.2.20230508.1, Commit: 7fe2bf39b357dd68572b438a85ca50b5ecfb4592, ReleaseTagName: 20230508.1 11:54:11 PM <function name removed>: Build Operation ID: <removed> 11:54:11 PM <function name removed>: Repository Commit : <removed> 11:54:11 PM <function name removed>: OS Type : bullseye 11:54:11 PM <function name removed>: Image Type : githubactions 11:54:11 PM <function name removed>: Detecting platforms... 11:54:12 PM <function name removed>: Detected following platforms: 11:54:12 PM <function name removed>: python: 3.9.7 11:54:12 PM <function name removed>: Using intermediate directory <removed>. 11:54:12 PM <function name removed>: Copying files to the intermediate directory... 11:54:12 PM <function name removed>: Done in 0 sec(s). 11:54:12 PM <function name removed>: Source directory : <removed> 11:54:12 PM <function name removed>: Destination directory: /tmp/build/expressbuild 11:54:13 PM <function name removed>: Python Version: /tmp/oryx/platforms/python/3.9.7/bin/python3.9 11:54:13 PM <function name removed>: Creating directory for command manifest file if it does not exist 11:54:13 PM <function name removed>: Removing existing manifest file 11:54:13 PM <function name removed>: Running pip install...
dev和prod环境部署均出现此问题。
已尝试的无效方法
- 升级VS Code到最新版本
- 升级Azure Function Core Tools到最新版本
- 通过Azure门户部署中心使用“External Git”连接部署,日志同样卡在该步骤
- 回滚requirements.txt到已知可用状态
解决思路
检查资源占用瓶颈:P2v2实例的CPU/内存可能在安装大依赖时被耗尽,导致进程挂起。在Azure门户的函数应用“监控”面板查看部署期间的资源使用率,若存在瓶颈,可临时升级实例规格(如P3v2)完成部署后再降级。
启用pip详细日志定位:在函数应用的“配置”→“应用程序设置”中添加
SCM_BUILD_ARGS参数,值设为--verbose,让Oryx执行pip install时输出详细日志,查看具体卡在哪个依赖包的安装环节。本地预构建依赖包:在本地执行
pip install --target .python_packages/lib/site-packages -r requirements.txt提前安装依赖,将包含.python_packages目录的整个项目打包部署,跳过Azure端的pip安装步骤。注意确保本地Python版本(3.9.10)与Azure端3.9.7的兼容性。排查依赖兼容性:逐个移除requirements.txt中的包,测试部署是否能完成,定位出导致停滞的具体依赖包,排查其是否存在网络源问题或与Python 3.9.7的隐性冲突。
清理Azure端构建缓存:通过Azure门户的“高级工具”进入Kudu控制台,删除
/tmp/oryx和/tmp/build目录,清除Oryx的构建缓存后重新尝试部署。
内容的提问来源于stack exchange,提问作者George
相关产品推荐
相关产品推荐

