VS Code Python部署HttpRequest1示例至Azure Function失败
Python版Azure Functions部署失败解决方案
故障核心定位
从两次重复部署的日志可以确认,Oryx云端构建环节(Python环境拉取、azure-functions依赖安装、项目文件拷贝)全部执行成功,失败触发点为构建完成后的包上传阶段,核心报错为:
Malformed SCM_RUN_FROM_PACKAGE when uploading built content
故障由两个配置不匹配问题共同导致:
- 本地开发使用
Python venv 3.8.8虚拟环境,但云端函数应用配置的Python运行时版本为3.9,跨版本构建生成的部署包元数据存在格式异常 - Linux消费计划函数应用的
SCM_RUN_FROM_PACKAGE应用设置值格式非法,平台无法识别构建完成的部署包存储路径,直接终止部署流程
注:日志中提示的pip版本过低警告不影响部署和功能运行,不需要额外处理
修复步骤
步骤1:对齐本地与云端Python版本
二选一即可:
- 本地对齐云端:删除本地项目下旧的3.8版本虚拟环境目录,安装Python 3.9.x后重新创建venv虚拟环境,执行
pip install -r requirements.txt重新安装所有依赖 - 云端对齐本地:登录Azure控制台进入目标函数应用,在「配置-常规设置」页将Python运行时版本修改为3.8,保存后等待应用重启完成
步骤2:修复SCM_RUN_FROM_PACKAGE配置
- 进入函数应用「配置-应用程序设置」页面,查找名为
SCM_RUN_FROM_PACKAGE的配置项 - 如果该配置值为空、或为非标准格式的自定义存储地址,直接删除该配置项,平台会在后续部署时自动生成合法配置
- 如果需要保留从包运行模式,直接将该配置项的值设为
1即可,不要手动填写自定义Blob存储URL,避免格式校验失败
步骤3:清理缓存后重新部署
- 在VS Code的Azure Functions扩展面板中,右键目标函数应用,选择清理历史部署残留缓存
- 确认本地项目根目录下
requirements.txt文件存在,且已正确写入azure-functions依赖项 - 重新触发部署,部署过程中不要关闭VS Code或中断网络连接
验证标准
部署完成后,直接调用创建的HttpRequest示例触发器接口,如果返回默认的函数响应内容,即为部署成功。
内容的提问来源于stack exchange,提问作者ThatOtherAsianGuy
相关产品推荐
相关产品推荐

