如何获取适用于AWS Lambda的Git及其依赖项压缩包
制作适配AWS Lambda的便携Git层
最简方案:基于现有仓库升级版本
你提到的旧版Git Lambda层仓库已经帮你踩过坑了,直接拿来升级最省心:
- 用Amazon Linux 2环境(或Docker容器)克隆该仓库
- 把脚本里的Git版本改成
2.40.0,替换对应的tar包下载地址 - 运行仓库里的构建脚本,它会自动处理依赖编译、目录整理和打包,直接生成符合Lambda要求的zip包
完全不用自己从零搭编译环境,风险低还省时间。
从零编译适配Amazon Linux的Git
如果一定要自己编译,必须用Amazon Linux环境(Lambda运行时的兼容系统),用Docker就能快速搞定:
- 启动Amazon Linux 2容器:
docker run -it amazonlinux:2 /bin/bash - 安装编译所需的依赖包:
yum install -y gcc make curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker - 下载并解压Git 2.40.0源码:
curl -O https://www.kernel.org/pub/software/scm/git/git-2.40.0.tar.gz tar -xzf git-2.40.0.tar.gz cd git-2.40.0 - 配置编译参数,指定安装到临时目录方便后续打包:
加./configure --prefix=/tmp/git-build --without-tcltk--without-tcltk是去掉GUI相关的依赖,能大幅减小最终包的体积。 - 编译并安装:
make && make install - 按Lambda层的要求打包:
Lambda层要求解压后根目录有bin、lib等目录,所以把编译好的文件整理后打包:
生成的mkdir -p /tmp/lambda-layer/{bin,lib,share} cp -r /tmp/git-build/bin/* /tmp/lambda-layer/bin/ cp -r /tmp/git-build/lib/* /tmp/lambda-layer/lib/ cp -r /tmp/git-build/share/* /tmp/lambda-layer/share/ cd /tmp/lambda-layer zip -r git-lambda-layer.zip .git-lambda-layer.zip就是可以直接上传到AWS的Lambda层包。
重要提醒
- 绝对不能用Mac或Windows直接编译,生成的二进制文件和Lambda的Amazon Linux环境不兼容
- 打包时必须保证目录结构正确,否则Lambda无法识别并添加到PATH
- 编译时可以通过
configure的参数去掉不需要的功能,进一步缩小层的体积,提升Lambda启动速度
内容的提问来源于stack exchange,提问作者BeetleJuice
相关产品推荐
相关产品推荐

