我有一个Node.js Lambda代码库,它与DynamoDB中的微小数据集进行通信(每个数据集少于400字节)。在向DynamoDB发出get()
请求(通过dynamoDbdAWS.DynamoDB.DocumentClient();
)时,该函数有时会超时5分钟。
问题是,何时发生此问题是完全随机的,但是当它起作用时,它从冷启动开始大约需要2秒钟,因此要花5分钟以上的时间运行是毫无意义的,而且是随机的。
context.callbackWaitsForEmptyEventLoop = false;
已设置我继承了这个项目,但是对它周围的体系结构有很好的了解,这很简单,但是我之前在Lambda上没有做太多工作。
我应该寻找的任何想法或任何已知问题都会有很大帮助。
答案 0 :(得分:2)
听起来,Lambda函数配置为在其中运行的一个(或多个)VPC子网没有到NAT网关(或AWS PrivateLink配置)的路由。因此,只要Lambda函数使用该子网,就无法访问AWS API。
如果Lambda函数实际上不需要访问VPC中的任何资源,那么最好根本不配置它以使用VPC。