Nodejs模块化aws-sdk v3的大小正在增加

uemypmqf  于 2023-06-22  发布在  Node.js
关注(0)|答案(2)|浏览(187)

我正在尝试减少使用aws-sdk的nodejs lambda包的大小。这是原始的lambda package.json文件:

{
  "name": "lambdanodejs",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "aws-sdk": "^2.784.0",
    "bluebird": "^3.7.2",
    "ioredis": "^4.19.2",
    "redis": "^3.0.2",
    "redis-clustr": "^1.7.0"
  }
}

整体大小为57MB,54属于aws-sdk。
为了减少大小,我尝试使用特定的客户端服务(v3sdk)。关注:https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-secrets-manager/package.json

{
  "name": "lambdanodejs",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "@aws-sdk/client-dynamodb": "^3.7.0",
    "@aws-sdk/client-secrets-manager": "^3.7.0",
    "bluebird": "^3.7.2",
    "ioredis": "^4.19.2",
    "redis": "^3.0.2",
    "redis-clustr": "^1.7.0"
  }
}

现在npm install的结果更大,大约190 + MB。另外,在node_modules中,我看到了很多在使用以前的package.json安装时没有的目录。这个v3 aws-sdk应该更轻。我错过了什么吗?
谢谢!

v440hwme

v440hwme1#

  • 不要将aws-sdk推送到lambda函数中。如果您想在本地开发环境中使用它,请全局安装它。
  • Lambda将在运行时提供所有必要的SDK模块(v2和v3),只需在代码中导入它们。
  • 不要将aws-sdk捆绑在zip中。
  • 如果你的zip文件越来越大,请使用lambda中的layers。
  • 将node_moudles导入lambda层。
  • 然后将代码上传到lambda。
zhte4eai

zhte4eai2#

升级到V3极大地增加了我的Node lambda包的大小,直到我还将lambda运行时从NODEJS_14_X升级到NODEJS_18_X。

相关问题