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

继承AWS Lambda项目后lambdazip.sh的作用、报错修复及部署位置咨询

AWS Lambda项目lambdazip.sh相关问题解答

一、lambdazip.sh的具体作用

这个脚本是标准的AWS Lambda部署包构建脚本,不是本地测试工具,前序开发人员编写它的目的是替代手动压缩操作,自动把项目运行所需的全部内容打包成符合Lambda要求的zip包,避免手动压缩漏文件、路径错误的问题。
它的执行逻辑如下:

  • 读取当前激活的Python2.7虚拟环境变量$VIRTUAL_ENV,从虚拟环境的依赖库目录中把pypdftk相关的第三方依赖打进部署包
  • 把项目中的bin目录(脚本本身所在的目录)、业务代码目录boost*、pdf_surveys全部打进部署包
  • 打包时自动排除.pyc编译文件,减少部署包体积

二、AWS上传规则说明

  • 这个.sh脚本不需要上传到Lambda函数,也不需要放到Lambda Layer中:它仅作为本地构建工具使用,最终你只需要上传它生成的dist/cl-boost.zip部署包到Lambda即可。
  • 如果你后续要拆分依赖和业务代码优化部署效率,可以把pypdftk这类公共依赖单独打包成Lambda Layer上传,可自行调整脚本实现拆分打包逻辑,原脚本的默认逻辑是把依赖和业务代码打包在同一个部署包中。

三、运行报错解决方案

报错的核心原因是执行脚本前没有激活项目对应的Python2.7虚拟环境,导致$VIRTUAL_ENV系统变量为空,脚本找不到依赖路径,后续所有打包路径全部出错,按以下步骤修复即可:

  1. 首先进入项目根目录,创建并激活Python2.7虚拟环境(如果已经创建过可跳过创建步骤):
# 进入项目根目录(bin目录的上级目录)
cd /Users/stephenstilwell/Downloads/cl_boost-pdfgen-1.3.3-master
# 创建Python2.7虚拟环境
virtualenv -p python2.7 venv
# 激活虚拟环境
source venv/bin/activate
  1. 安装项目所需的全部依赖,尤其是pypdftk:
# 如果项目根目录有requirements.txt就执行这行
pip install -r requirements.txt
# 没有的话直接安装已知依赖
pip install pypdftk
  1. 手动创建dist目录避免打包时找不到输出路径:
mkdir -p bin/dist
  1. 再次执行脚本即可正常生成部署包:
cd bin
sh lambdazip.sh

如果你不想用虚拟环境,也可以手动把脚本里的$VIRTUAL_ENV/lib/python2.7/site-packages/替换成你本地Python2.7的site-packages实际路径,不过更推荐用虚拟环境方案,和原开发人员的打包逻辑保持一致,避免依赖版本不对导致Lambda运行报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 17:15:03