在 AWS Lambda 中存储单个值的最佳实践

问题描述 投票:0回答:5

我有一个正在生成并返回值的 Lambda。该值可能会过期。因此我需要在返回之前检查值的有效性。 由于生成非常昂贵(从其他服务获取),我想以某种方式存储该值。

存储这两个值(时间戳和相应值)的最佳实践是什么?

  • DynamoDB,但是使用 2 个值的数据库服务似乎开销很大。永远不会有更多的物品;相同的条目只会更新。
  • 我想到了 S3,但这也意味着创建一个 S3-Bucket 并存储一个包含信息的对象,仅用于这 2 个值(但可能是最“精简”的方式?)
  • 希望更新 Lambda 配置以更新环境变量(但即使这是可能的,它可能不是最佳实践?!也不确定与 Lambda 运行时的不一致...)

这里的最佳实践是什么?在性能方面要走什么路?

amazon-web-services amazon-s3 aws-lambda amazon-dynamodb serverless
5个回答
18
投票

使用DynamoDB“运行数据库”没有任何开销——它是一项完全托管的服务。您只需为存储和预配置容量付费。听起来您的用例适合“免费使用层”。 或者,您可以将

API Gateway

与缓存设置一起使用,这样它甚至不会调用 Lambda 函数,除非超时。


12
投票
AWS Parameter Store

AWS Systems Manager Parameter Store 提供安全、分层的 用于配置数据管理和机密管理的存储。你 可以存储密码、数据库字符串和许可证代码等数据 作为参数值。您可以将值存储为纯文本或加密的 数据。然后,您可以使用您指定的唯一名称来引用值 创建参数时指定。高度可扩展、可用、 Parameter Store 持久耐用,由 AWS 云提供支持。范围 商店免费提供。

与 AWS 的其他存储方式相比,

0
投票
Dynamodb

将是更好的选择。 Dynamodb 针对低延迟、高吞吐量的数据访问进行了优化,适合需要快速数据检索和更新的场景。 Systems Manager Parameter Store 可以处理中等工作负载,并为单个 API 请求提供低延迟,但对于需要高频数据访问的场景,它的性能可能不如 DynamoDB。尽管它为管理配置数据和机密提供了一种经济高效的解决方案,但随着 API 请求量大或参数频繁更新,成本可能会增加。

您可以查看此链接以了解 AWS 提供的其他存储选项:-

https://aws.amazon.com/blogs/compute/choosing-the-right-solution-for-aws-lambda-external-parameters/


-3
投票

    https://redis.io/
  • https://memcached.org/
  • 幸运的是,有 Amazon ElastiCache:

    https://aws.amazon.com/elasticache/
  • 它是托管的 Redis 和 Memcached,但您不需要在您的用例中使用它 - 您可以轻松地在自己的 EC2 上使用 Redis,或者您可以使用 Compose 等外部服务,该服务也支持 Amazon 数据中心内的实例:

    https://www.compose.com/
  • 有很多使用方法,但我肯定会使用 Redis,尤其是对于像这样的简单情况。


-4
投票

https://docs.aws.amazon.com/lambda/latest/dg/API_UpdateFunctionConfiguration.html

© www.soinside.com 2019 - 2024. All rights reserved.