我在 AWS lambda 中有以下代码:
const cache = {};
exports.handler = async (event) => {
// TODO implement
if (cache[event.key]) {
console.log('read from cache');
return cache[event.key];
}
console.log('generate value');
cache[event.key] = Math.random()
return cache[event.key];
};
当我运行 lambda 时,我可以看到read from cache
在日志上,这意味着 lambda 在缓存内存中缓存了一些值。当 lambda 变热时,它的记忆会保留吗?这是否意味着我可以利用该内存进行一些缓存以提高性能?
可以在 Lambda 调用之间保留某些内容(假设调用访问同一个 MicroVM),但您的应用程序不应依赖它来提高性能。
无法保证它会在 MicroVM 上持续多久,还要注意您存储在内存中的卷,因为如果没有足够的内存可用,这可能会影响 Lambda 的性能。如果您希望提高性能,请查看以下一些选项:
-
系统管理器参数存储- 如果您需要存储单个键/值组合,请使用此选项。
-
DynamoDB- 如果您需要多个键/值组合,请使用此选项。
-
弹性疼痛- 如果您需要内存中键/值存储并支持许多复杂数据类型,请使用此选项。这将需要Lambda 被添加到 VPC.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)