我尝试使用servless/lambda函数AWS上传我的应用程序,但我遇到了以下问题:
发生错误: AppLambdaFunction -解压缩大小必须小于262144000字节(服务: AWSLambdaInternal;状态代码: 400;错误代码: InvalidParameterValueException;请求ID: 8ea0d887-5743-4db1-96cd-6c5efa57b081)。
解决这个问题的最好办法是什么?
查看我的依赖关系:
"dependencies": {
"ethereumjs-tx": "^1.3.7",
"aws-sdk": "^2.4.52",
"body-parser": "^1.18.3",
"compression": "^1.7.4",
"consign": "^0.1.6",
"cors": "^2.8.5",
"express": "^4.16.4",
"helmet": "^3.16.0",
"moment": "^2.24.0",
"openzeppelin-solidity": "^2.3.0",
"serverless": "^1.48.2",
"serverless-http": "^1.9.1",
"serverless-offline": "^4.9.4",
"truffle": "^5.1.9",
"truffle-hdwallet-provider": "^1.0.17",
"web3": "^1.2.5-rc.0"
},Serverless.yml:
provider:
name: aws
runtime: nodejs8.10
stage: v1
region: us-east-1
timeout: 30
memorySize: 512
package:
excludeDevDependencies: true
exclude:
- .git/**
- .vscode/**
- venv/**
functions:
app:
handler: handler.run
events:
- http:
path: /
method: ANY
cors: true
- http:
path: /{proxy+}
method: ANY
cors: true
plugins:
- serverless-offline 发布于 2020-08-12 18:52:04
发布于 2020-01-28 02:09:12
您可以使用模块绑定器来打包代码。
使用像webpack这样的模块绑定器
您可以考虑使用像serverless-webpack这样的插件。serverless-webpack插件正在使用webpack构建项目,它将只包含运行应用程序所需的最小文件。它将不包括整个node_modules目录。这样您的部署包就会更小。
关于Lambda层使用的一点注记
正如其他人提到的,您可以使用这些层,并将一些库和代码移到该层。层主要用于在函数之间共享代码。解压缩部署的包(包括层)不能超过250 The。
希望这能有所帮助。
参考文献:
https://github.com/serverless-heaven/serverless-webpack
https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html#configuration-layers-path
发布于 2022-03-10 06:28:45
我已经成功地使用serverless-esbuild插件解决了这个错误消息,并按照下面的serverless.yml配置了它
service: service_name
frameworkVersion: '3'
provider:
name: aws
runtime: nodejs12.x
plugins:
- serverless-esbuild
custom:
esbuild:
bundle: true
minify: false
sourcemap: true
exclude: 'aws-sdk'
target: node14
define:
'require.resolve': undefined
platform: node
concurrency: 10https://stackoverflow.com/questions/59931761
复制相似问题