与DynamoDB通信时,Lambda开始随机超时

时间:2019-01-09 12:05:58

标签: node.js amazon-web-services aws-lambda amazon-dynamodb serverless

我有一个Node.js Lambda代码库,它与DynamoDB中的微小数据集进行通信(每个数据集少于400字节)。在向DynamoDB发出get()请求(通过dynamoDbdAWS.DynamoDB.DocumentClient();)时,该函数有时会超时5分钟。

问题是,何时发生此问题是完全随机的,但是当它起作用时,它从冷启动开始大约需要2秒钟,因此要花5分钟以上的时间运行是毫无意义的,而且是随机的。

  • 这是一个开发环境,所以只有我自己在使用它,我每天可能要执行10个请求
  • context.callbackWaitsForEmptyEventLoop = false;已设置
  • 内存分配不得超过45MB(设置为128MB)
  • 我正在Lambda中直接测试
  • 通过Serverless
  • 部署代码
  • 使用无服务器进行测试时,在本地运行,而Lambda失败

我继承了这个项目,但是对它周围的体系结构有很好的了解,这很简单,但是我之前在Lambda上没有做太多工作。

我应该寻找的任何想法或任何已知问题都会有很大帮助。

1 个答案:

答案 0 :(得分:2)

听起来,Lambda函数配置为在其中运行的一个(或多个)VPC子网没有到NAT网关(或AWS PrivateLink配置)的路由。因此,只要Lambda函数使用该子网,就无法访​​问AWS API。

如果Lambda函数实际上不需要访问VPC中的任何资源,那么最好根本不配置它以使用VPC。