如何使用Terraform部署包含多依赖文件的Python Lambda函数
关于Python Lambda多脚本依赖打包部署的解答
完全可以使用archive provider打包整个项目文件夹的方式满足你的部署需求,该方案适配Lambda的运行规则,也不影响后续接入Step Function,相关注意事项如下:
- Lambda官方本身就要求以zip归档包的形式上传部署资源,你只需要保证打包后的归档根目录的文件结构和你本地开发时的项目根目录结构完全一致即可:比如你本地入口函数文件名为
main.py,入口方法为handler,就将Lambda的处理程序配置为main.handler,同目录下的其他依赖Python脚本可以直接被入口文件import调用,不会出现依赖缺失问题。 - 使用archive provider打包时建议添加排除规则,过滤掉无需部署的冗余文件:比如本地的
.git目录、虚拟环境文件夹、调试日志、临时文件等,避免部署包体积超出Lambda限制(压缩包直接上传上限为50MB,解压后总文件体积上限为250MB)。 - 后续你将该Lambda添加到Step Function时不需要调整部署包结构,Step Function仅通过Lambda的ARN调用服务,只要Lambda本身的部署包依赖完整,工作流运行时不会额外校验或修改Lambda的内部文件结构。
- 如果后续你需要新增第三方pip依赖,也可以将依赖安装到项目目录后一起打包,和你自有依赖脚本的打包逻辑完全兼容。
内容的提问来源于stack exchange,提问作者Xcute
相关产品推荐
相关产品推荐

