我们正在开发一个无服务器应用程序。该应用程序具有";用户";被添加的;组";具有";权限";关于不同的";资源";。为了检查用户是否有权对资源执行操作,我们需要进行一些计算。(我们使用的是DynamoDB(
基本上,在每次操作之前,我们都需要检查用户是否有权对给定的资源执行该特定操作。我想我们可以有一个lambda函数,从缓存中检查它,如果不在缓存中,则访问DB,进行计算,在缓存中写入,然后返回。
在这里最好使用哪种缓存?我们将从后端内部调用它。
API网关还有路要走吗?
弹性缓存如何实现此目的?我们可以在不配置专有网络的情况下使用它吗?我们正在努力避免在我们的应用程序中使用专有网络。
有更好的方法吗?
它们都是不错的选择!
Elasticache是为缓存数据而设计的。API网关还可以缓存结果。
另一种选择是将数据";内部";AWS Lambda函数。这些值将在下次调用Lambda函数时保持存在,因此您可以缓存结果和到期时间。但是,请注意,如果函数频繁运行(即使是并行运行(,或者在一段时间内没有运行,Lambda可能会启动多个容器。因此,最终可能会出现多个缓存。
我认为最简单的选择是API网关的缓存。
这些权限映射(用户<->资源(存储在哪里?
这篇aws的博客文章可能很有趣(它是关于在lambda执行环境的内存中缓存的。