问题
之前在AWS Lambda上面,添加过Python的依赖库层。现在需要添加NodeJS依赖库层。
解决
package-lock.json
json
{
"dependencies": {
"base64url": "^3.0.1"
}
}
这里需要依赖库base64url,以及指定的版本号。
设置nodejs
bash
nvm install 24.12.0
nvm use 24.12.0
nvm alias default 24.12.0
制作依赖库
bash
# 下载依赖库
npm install --cpu=x64
# 创建nodejs文件夹
mkdir nodejs
# 移动依赖库文件夹
mv node_modules nodejs
# 压缩zip
zip -r base64url.zip ./nodejs
# 检查zip
zip -sf base64url.zip
目录结构如下:
bash
Archive contains:
nodejs/
nodejs/node_modules/
nodejs/node_modules/base64url/
nodejs/node_modules/base64url/LICENSE
nodejs/node_modules/base64url/dist/
nodejs/node_modules/base64url/dist/base64url.js
nodejs/node_modules/base64url/dist/base64url.d.ts
nodejs/node_modules/base64url/dist/.gitkeep
nodejs/node_modules/base64url/dist/pad-string.js
nodejs/node_modules/base64url/dist/pad-string.d.ts
nodejs/node_modules/base64url/index.js
nodejs/node_modules/base64url/readme.md
nodejs/node_modules/base64url/package.json
nodejs/node_modules/.package-lock.json
Total 14 entries (8063 bytes)
AWS Lambda对依赖库层上传的zip包,有目录结构要求,必须是如下目录结构:
- nodejs/node_modules
- nodejs/node18/node_modules (NODE_PATH)
- nodejs/node20/node_modules (NODE_PATH)
- nodejs/node22/node_modules (NODE_PATH)
使用
添加到AWS Lambda中使用即可:
javascript
import base64url from "base64url";
...