2017-06-22 136 views
0
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上传它,还是与我的项目中的路线数量有关?AWS Lambda setupRequestListerners RequestEntityTooLargeException claudia.js

相同的部署技术适用于只有几条路径的较小项目。

我使用claudia.js这些命令:

"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

有两个很好的方法来解决这个问题。一种是使用中间的S3存储桶来部署你的代码。 Claudia可以将zip文件上传到S3,然后向Lambda发送一个较小的请求,以便从S3中获取代码。为此,使用--use-s3-bucket <bucket name>claudia update

第二个选项是在lambda启动时将某些你不需要的东西立即放到某处(例如s3)并下载到/tmp目录。我们使用这个大字体文件或第三方二进制文件。

+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

克劳迪娅创建--handler lambda.handler --deploy代理-API --region美南1 - -use-s3-bucket bucket-name

谢谢你@Gojko的贡献。 PS:我无法写我的答案作为评论。