1

我们正在开发一个无服务器应用程序。该应用程序具有添加的“用户”,对不同“资源”具有“权限”的“组”。要检查用户是否有权对资源执行操作,我们需要进行一些计算。(我们正在使用 DynamoDB)

基本上,在每个操作之前,我们需要检查用户是否有权对给定资源执行特定操作。我在想我们可以有一个 lambda 函数,它从缓存中检查,如果不在缓存中,则命中数据库,进行计算,写入缓存,然后返回。

在这里最好使用哪种缓存?我们将从后端本身内部调用它。

API 网关仍然是要走的路吗?

为此目的使用弹性缓存怎么样?我们可以在不配置 VPC 的情况下使用它吗?我们试图不必在我们的应用程序中使用 VPC。

还有更好的方法吗?

4

1 回答 1

2

都是不错的选择!

Elasticache 专为缓存数据而设计。API Gateway 还可以缓存结果。

另一种方法是使用全局变量将数据保存在 AWS Lambda 函数“内部”。下次调用 Lambda 函数时,这些值将保持存在,因此您可以缓存结果和到期时间。但是请注意,如果函数频繁运行(即使是并行运行),或者有一段时间不运行,Lambda 可能会启动多个容器。因此,您最终可能会得到多个缓存。

我想说最简单的选择是 API Gateway 的缓存。

于 2021-05-25T22:59:14.060 回答