creating Lambda lambda.setupRequestListeners
{ RequestEntityTooLargeException: Request must be smaller than 69905067 bytes for the CreateFunction operation
message: 'Request must be smaller than 69905067 bytes for the CreateFunction operation',
code: 'RequestEntityTooLargeException',
time: 2017-06-22T08:30:52.260Z,
requestId: 'xxx',
statusCode: 413,
retryable: false,
retryDelay: 89.31111557639109
}
我的项目太大或者这里发生了什么?我可以通过S3上传它还是与我项目中的路线数量有关?
相同的部署技术适用于只有几条路线的小型项目。
"scripts": {
"deploy": "claudia create --handler lambda.handler --name authService --deploy-proxy-api --region eu-central-1",
"update": "claudia update",
"generate-proxy": "claudia generate-serverless-express-proxy --express-module server",
"test": "./node_modules/.bin/mocha --reporter spec"
},
答案 0 :(得分:1)
您可以使用以下两种方法来测试: 1)AWS CLI 与直接上传到Lambda相比,从S3部署功能代码允许更大的部署包。
将Lambda函数的代码放入AWS Lambda有两种方法:直接上传函数的部署包,或让Lambda从S3中提取它。
https://hackernoon.com/exploring-the-aws-lambda-deployment-limits-9a8384b0bec3
2)ClaudiaJS CLI
在这里阅读: https://claudiajs.com/news/2016/09/21/claudia-1.9.0.html
claudia create --handler lambda.handler --deploy-proxy-api --region us-south-1 --use-s3-bucket bucket-name
谢谢@Gojko的贡献。
答案 1 :(得分:0)
有两种好方法可以解决这个问题。一种是使用中间S3存储桶来部署代码。 Claudia可以将zip文件上传到S3,然后向Lambda发出一个较小的请求,只需从S3获取代码即可。将--use-s3-bucket <bucket name>
与claudia update
一起使用。
第二种选择是将你不需要的东西放在某处(例如s3)并在lambda启动时下载到/tmp
目录。我们将它用于大字体文件或第三方二进制文件。