我有一个正在生成并返回值的Lambda。此值可能会过期。因此我需要在返回之前检查值的有效性。 由于生成非常昂贵(取自其他服务),我想以某种方式存储该值。
存储这两个值(时间戳和相应值)的最佳做法是什么?
这里最好的做法是什么?什么是性能方面?
答案 0 :(得分:8)
使用DynamoDB。"运行数据库"没有开销。 - 这是一个完全托管的服务。您只需为存储和配置容量付费。听起来您的用例适合Free Usage Tier。
或者,您可以将 API网关与缓存设置一起使用,这样即使超时已经过了,它也不会调用Lambda函数。
答案 1 :(得分:4)
您可以考虑AWS Parameter Store
AWS Systems Manager参数存储提供安全的分层结构 用于配置数据管理和秘密管理的存储。您 可以存储密码,数据库字符串和许可证代码等数据 作为参数值。您可以将值存储为纯文本或加密 数据。然后,您可以使用您的唯一名称来引用值 在创建参数时指定。高度可扩展,可用, 且持久,Parameter Store由AWS Cloud支持。参数 商店免费提供。
答案 2 :(得分:0)
对于这样的情况,我会使用一些快速的内存数据存储,如Redis或Memcached:
幸运的是有Amazon ElastiCache:
管理Redis和Memcached,但您不需要将它用于您的用例 - 您可以在自己的EC2上轻松使用Redis,或者您可以使用像Compose这样的外部服务来支持实例亚马逊数据中心:
很多方法可以使用它,但我肯定会使用Redis,特别是对于像这样的简单案例。
答案 3 :(得分:-1)
只需为环境变量设置一个值和一个日期即可。 然后在每次执行lambda时检查日期。
https://docs.aws.amazon.com/lambda/latest/dg/API_UpdateFunctionConfiguration.html