我使用nodejs来使用AWS Lambda.
据我所知,lambda的每个函数都是在独立和并行的过程中处理的.
但是,以下示例显示的结果与我预期的不同.
// test.js
const now = new Date();
module.exports = () => {
console.log(now);
};
// handler.js
const test = require('./test');
module.exports.hello = async (event, context) => {
test();
return {
statusCode: 200,
body: null
};
};
Run Code Online (Sandbox Code Playgroud)
结果: 你好处理程序日志
按照我的意图,每个函数都是独立执行的,因此值console.log(now)应该始终是执行它的点.
但是,在实际日志中,值now是在第一次执行时连续记录的 - 而不是每个函数的执行.
5分钟后的日志值是相同的.但是,该值在12小时后发生了变化,但在此之后,它显示了同样的问题.
这个结果让我们认真考虑如何管理数据库连接.
每个lambda回收案例都有两个假设
如果lambda像test.js一样回收,
如果不,
我们怎样才能在最大性能范围内使用lambda?
我们如何解释上面的测试结果?