Amazon web services 使用层还是调用另一个lambda?
我有一个模块,用于维护到redis服务器的连接实例:Amazon web services 使用层还是调用另一个lambda?,amazon-web-services,redis,aws-lambda,Amazon Web Services,Redis,Aws Lambda,我有一个模块,用于维护到redis服务器的连接实例: const getClient = (() => { let client; return () => { if (!client) client = clientFactory(); // lazy loading of the redis client return client; } })(); 该模块计划部署在AWS Lambda上。根据建议,上述闭包中的redis
const getClient = (() => {
let client;
return () => {
if (!client) client = clientFactory(); // lazy loading of the redis client
return client;
}
})();
该模块计划部署在AWS Lambda上。根据建议,上述闭包中的redis客户端永远不会被手动销毁,以利于上下文重用,并且将在lambda调用实例被终止时自动销毁
现在的问题是:我还有一些其他模块,它们也将作为单独的lambda函数部署在lambda上,并且需要利用redis客户机模块。我应该将redis模块设置为可重用层,还是应该将该模块部署为另一个单独的函数,并直接从调用模块调用该函数
使用层的问题:redis连接将为每个单独的调用模块实例化,这不利于上下文重用
调用另一个lambda函数的问题:网络开销
据我所知,两个lambda函数之间的调用,调用方将向被调用方发送一个API请求,从而产生额外的网络开销。那么,这比糟糕的上下文重用更重要吗