在 AWS Lambda 中存储单个值的最佳实践
Best practice to store single value in AWS Lambda
我有一个正在生成并返回值的 Lambda。该值可能会过期。因此我需要在返回之前检查值的有效性。
由于生成非常昂贵(取自另一项服务),我想以某种方式存储该值。
存储这 2 个值(时间戳和对应值)的最佳做法是什么?
- DynamoDB,但是为 2 个值使用数据库服务似乎开销很大。永远不会有更多的项目;相同的条目只会得到更新。
- 我想到了 S3,但这也意味着创建一个 S3-Bucket 并存储一个包含信息的对象,仅用于这 2 个值(但可能是最 "lean" 方式?)
- 愿意更新 Lambdas 配置以更新环境变量(但即使这可能,它可能不是最佳实践?!也不确定与 Lambda 运行时的不一致...)
此处的最佳做法是什么?性能方面有何发展方向?
对于这种情况,我会使用一些快速的内存数据存储,例如 Redis 或 Memcached:
幸运的是有 Amazon ElastiCache:
它由 Redis 和 Memcached 托管,但您不需要将它用于您的用例 - 您可以在自己的 EC2 上轻松使用 Redis,或者您可以使用外部服务,如 Compose,它也支持内部实例亚马逊数据中心:
有很多方法可以使用它,但我肯定会使用 Redis,尤其是对于像这样的简单情况。
使用DynamoDB. There is no overhead for "running a database" -- it is a fully-managed service. You pay only for storage and provisioned capacity. It sounds like your use-case would fit within the Free Usage Tier。
或者,您可以使用具有缓存设置的 API 网关,这样它甚至不会调用 Lambda 函数,除非超时已过。
你可以考虑AWS Parameter Store
AWS Systems Manager Parameter Store provides secure, hierarchical
storage for configuration data management and secrets management. You
can store data such as passwords, database strings, and license codes
as parameter values. You can store values as plain text or encrypted
data. You can then reference values by using the unique name that you
specified when you created the parameter. Highly scalable, available,
and durable, Parameter Store is backed by the AWS Cloud. Parameter
Store is offered at no additional charge.
只需为环境变量设置一个值和一个日期。
然后每次执行lambda时检查日期。
https://docs.aws.amazon.com/lambda/latest/dg/API_UpdateFunctionConfiguration.html
我有一个正在生成并返回值的 Lambda。该值可能会过期。因此我需要在返回之前检查值的有效性。 由于生成非常昂贵(取自另一项服务),我想以某种方式存储该值。
存储这 2 个值(时间戳和对应值)的最佳做法是什么?
- DynamoDB,但是为 2 个值使用数据库服务似乎开销很大。永远不会有更多的项目;相同的条目只会得到更新。
- 我想到了 S3,但这也意味着创建一个 S3-Bucket 并存储一个包含信息的对象,仅用于这 2 个值(但可能是最 "lean" 方式?)
- 愿意更新 Lambdas 配置以更新环境变量(但即使这可能,它可能不是最佳实践?!也不确定与 Lambda 运行时的不一致...)
此处的最佳做法是什么?性能方面有何发展方向?
对于这种情况,我会使用一些快速的内存数据存储,例如 Redis 或 Memcached:
幸运的是有 Amazon ElastiCache:
它由 Redis 和 Memcached 托管,但您不需要将它用于您的用例 - 您可以在自己的 EC2 上轻松使用 Redis,或者您可以使用外部服务,如 Compose,它也支持内部实例亚马逊数据中心:
有很多方法可以使用它,但我肯定会使用 Redis,尤其是对于像这样的简单情况。
使用DynamoDB. There is no overhead for "running a database" -- it is a fully-managed service. You pay only for storage and provisioned capacity. It sounds like your use-case would fit within the Free Usage Tier。
或者,您可以使用具有缓存设置的 API 网关,这样它甚至不会调用 Lambda 函数,除非超时已过。
你可以考虑AWS Parameter Store
AWS Systems Manager Parameter Store provides secure, hierarchical storage for configuration data management and secrets management. You can store data such as passwords, database strings, and license codes as parameter values. You can store values as plain text or encrypted data. You can then reference values by using the unique name that you specified when you created the parameter. Highly scalable, available, and durable, Parameter Store is backed by the AWS Cloud. Parameter Store is offered at no additional charge.
只需为环境变量设置一个值和一个日期。 然后每次执行lambda时检查日期。
https://docs.aws.amazon.com/lambda/latest/dg/API_UpdateFunctionConfiguration.html