在aws

时间:2017-07-31 01:05:18

标签: node.js amazon-web-services caching aws-lambda

我需要将由节点 restify 支持的API服务器迁移到使用AWS提供的API Gateway + lambda函数。

API服务器(GET / POST简单的东西,不涉及数据库)作为代理服务器与CMS系统通信以获取客户端的数据。

目前, etag 缓存是通过 restify 中间件完成的。我想知道在新的解决方案(API Gateway + lambda)中实现相同的目标需要做些什么?

附注,我想到的是 - 将CMS的响应保存到启用了 ETag 缓存机制的S3 / CloudFront中,让他们确定是否可以使用浏览器上的缓存响应。 / p>

我想知道这是不是一个好习惯?

感谢

1 个答案:

答案 0 :(得分:2)

首先,API网关有一个单独的caching option,您可以在其中缓存更适合API内容缓存的特定TTL的响应。

如果您的CMS响应主要包含静态内容,并且代理的要求是通过并缓存内容,请直接在CMS的前面使用AWS CloudFront。

如果您只使用API​​网关Lambda作为代理,并且还在Lambda中完成了重要的数据转换或生成,那么您可以在API网关的前面设置AWS CloudFront来缓存响应。

如果代理(带有Lambda的API网关)只进行了非常轻微的数据转换和生成,那么您只能在CMS前面使用CloudFront,并在CloudFront边缘位置使用Edge Lambda运行来对即将到来的响应进行轻微修改来自CMS还有缓存。

我没有明确需要将响应存储在S3中,然后通过CloudFront提供服务,除非您的CMS直接支持将内容自动推送到S3。