3

我认为通过添加内部缓存来优化烧瓶应用程序 lambda 服务器以相对缓慢地更改数据(例如,站点下拉菜单可能每年更改几次)。我使用 zappa 部署到 lambda。这有什么意义吗?还是每次处理请求时都会闪存。我知道我不能依赖aws 保存状态,我的目标是稍微优化性能,而不是在一些 redis 实例上花费一大笔钱,更不用说 ElastiCache。

更新:是的,像 zappa 这样的无服务器部署框架会回收状态,所以我为什么不应该这样做。在hackernoon博客下面更详细地讨论了状态回收

https://hackernoon.com/write-recursive-aws-lambda-functions-the-right-way-4a4b5ae633b6

虽然 Lambda 函数在设计上是短暂的,但容器仍可用于优化,这意味着您仍然可以利用通过调用持久化的内存状态。

不确定是否可以使此类缓存无效,env 变量可能是 lambda 实例的本地变量,http,sns 可能很难/昂贵。

4

1 回答 1

3

是的,这不适用于 Lambda。

您必须使用某种第 3 方缓存。


如果仅缓存您的 GET 请求对您来说就足够了,您可以为此使用 CDN。

我个人使用将所有GET请求缓存n分钟的 CloudFlare CDN。你会收到很多免费的请求。您只需定义一个自定义页面规则来缓存特定 URL 模式的所有内容。

CloudFlare 页面规则

当然,同样的事情也可以用 CloudFront(留在 AWS 生态系统中)或大多数其他 CDN 来完成。

于 2018-01-16T12:02:29.727 回答