我正在研究一个项目,我正在使用lambda函数同时连接到关系数据库和DynamoDB。要访问该函数,我正在使用API网关,但我发现了一个问题:由于创建了两个数据库连接,用Java编写的lambda函数需要10秒以上才能启动。
我知道API网关超时是10秒,这不是一个问题,执行我的功能需要不到1秒,但问题是什么时候必须启动。 我想知道如何捕获此超时异常并通知用户他需要再次启动请求。
有没有办法在不移动Node.js或直接访问lambda函数的情况下这样做?
答案 0 :(得分:1)
由于建立与关系数据库的连接的成本太高,我建议您在Lambda函数的初始化代码中打开连接(在处理程序之外)。
然后,将在Lambda容器的生命周期内跨多个调用重用数据库连接。在Lambda函数处理程序中,您可能希望确保连接处于活动状态并且没有超时,并根据需要重新打开。
通过API网关的第一次调用可能会超时,但后续调用将在容器的生命周期内重用该连接。
另一个技巧是创建一个预定的功能来定期调用你的功能来保持容器的温暖"。
干杯, 莱恩