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

如何排除已在Lambda层中的包,不随AWS Lambda函数打包

解决Pipenv管理Lambda依赖时排除层中已有依赖的方案

方法一:将层依赖标记为开发依赖

把Lambda层中已存在的依赖归类到Pipenv的开发依赖,既满足本地测试的依赖需求,又能在打包生产部署包时自动排除:

  • 安装依赖时添加--dev参数:
    pipenv install <依赖名称> --dev
    
    例如层中包含requests,就执行pipenv install requests --dev,该依赖会被写入Pipfile的[dev-packages]区块,而非生产依赖的[packages]部分。
  • 生成仅包含生产依赖的清单:
    pipenv lock --requirements --exclude-dev > requirements.txt
    
  • 基于清单安装依赖到部署目录:
    pip install -r requirements.txt --target ./lambda_deploy_package
    
    最终的lambda_deploy_package目录里不会包含层中已有的依赖。

方法二:自定义打包脚本简化流程

在Pipfile的[scripts]区块定义打包命令,一键完成依赖筛选与打包操作:

[scripts]
build-lambda-package = "pipenv lock --requirements --exclude-dev > reqs.txt && pip install -r reqs.txt --target ./deploy && rm reqs.txt"

之后只需运行以下命令即可生成干净的部署包:

pipenv run build-lambda-package

本地测试说明

执行pipenv install --dev会安装所有生产依赖和开发依赖(包括层中的依赖),完全满足本地运行Lambda函数的测试需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 12:10:20