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

从存储账户Zip部署Azure Functions远程构建失败求助

Azure Function 部署时无法找到requirements.txt中声明的依赖模块(Linux Python 3.9 + WEBSITE_RUN_FROM_PACKAGE)

问题背景

通过Terraform+CI/CD流水线部署Azure Function基础设施,函数代码存于独立Git仓库。配置自动部署流程:CI/CD将代码打包为Zip上传至存储账户,同时通过Terraform设置函数应用配置:

"WEBSITE_RUN_FROM_PACKAGE"       = "https://${var.storage_account_name}.blob.core.windows.net/${var.storage_account_container_name}/cpms-function-app.zip${var.sas_token}",
"FUNCTIONS_WORKER_RUNTIME"       = "python",
"AzureWebJobsDisableHomepage"    = "true",
"SCM_DO_BUILD_DURING_DEPLOYMENT" = "true"
"ENABLE_ORYX_BUILD"              = "true"

环境为Linux上的Python 3.9运行时,部署时报错找不到requirements.txt中已声明的模块。文件已成功上传至存储账户,但构建过程存在问题。已尝试切换部署方式、运行时/函数版本、不同区域部署,因本地是ARM64机器无法进行本地测试。

可能的原因及解决方法

1. 检查Zip包目录结构

  • 确保requirements.txt和函数代码文件处于Zip包根目录,避免嵌套在子文件夹内。
    • 错误结构:cpms-function-app.zip/src/requirements.txt
    • 正确结构:cpms-function-app.zip/requirements.txt
  • 打包时直接压缩代码文件,而非包含代码的父文件夹。

2. 验证requirements.txt格式与依赖兼容性

  • 检查依赖名称、版本号是否有拼写错误,版本约束是否符合PyPI规范。
  • 对于需编译的依赖(如numpy、pandas),确认声明的版本兼容Python 3.9和Linux x86_64环境(Azure Function Linux运行时为x86_64架构,本地ARM64环境的依赖无法复用)。

3. 修正Terraform配置格式与补充版本声明

  • 原配置中最后一行缺少逗号,可能导致ENABLE_ORYX_BUILD未生效,修正后配置:
    "WEBSITE_RUN_FROM_PACKAGE"       = "https://${var.storage_account_name}.blob.core.windows.net/${var.storage_account_container_name}/cpms-function-app.zip${var.sas_token}",
    "FUNCTIONS_WORKER_RUNTIME"       = "python",
    "AzureWebJobsDisableHomepage"    = "true",
    "SCM_DO_BUILD_DURING_DEPLOYMENT" = "true",
    "ENABLE_ORYX_BUILD"              = "true",
    "PYTHON_VERSION"                 = "3.9"
    
  • 添加PYTHON_VERSION明确指定运行时版本,避免Oryx自动检测出错。

4. 查看构建日志定位具体错误

  • 进入Azure Portal的Function App,导航至部署中心 > 日志,查看Oryx构建过程的详细日志,确认是依赖下载失败、编译错误还是其他问题。
  • 通过Kudu控制台(https://<your-function-app-name>.scm.azurewebsites.net)检查/home/site/wwwroot目录下的文件,确认requirements.txt是否存在,以及.python_packages目录是否生成依赖包。

5. 配置依赖下载源解决网络问题

  • 若因网络原因导致依赖无法下载,可在Function App中添加PIP_INDEX_URL配置指定镜像源:
    "PIP_INDEX_URL" = "https://pypi.tuna.tsinghua.edu.cn/simple"
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 06:15:39