3
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 上传它还是与我项目中的路由数量有关?

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

我将 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"
  },
4

2 回答 2

2

您可以采用两种方法对此进行测试:1) AWS CLI 与直接上传到 Lambda 相比,从 S3 部署函数代码可以实现更大的部署包。

有两种方法可以将 Lambda 函数的代码导入 AWS Lambda:直接上传函数的部署包,或者让 Lambda 从 S3 中提取它。

https://hackernoon.com/exploring-the-aws-lambda-deployment-limits-9a8384b0bec3

2)克劳迪娅JS 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 的贡献。

于 2017-10-21T12:14:05.710 回答
1

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

第二种选择是将不需要的东西立即放在某个地方(例如 s3)并/tmp在 lambda 启动时下载到该目录。我们将其用于大型字体文件或第三方二进制文件。

于 2017-06-23T23:23:49.953 回答