我需要将由节点 restify 支持的API服务器迁移到使用AWS提供的API Gateway + lambda函数。
API服务器(GET / POST简单的东西,不涉及数据库)作为代理服务器与CMS系统通信以获取客户端的数据。
目前, etag 缓存是通过 restify 中间件完成的。我想知道在新的解决方案(API Gateway + lambda)中实现相同的目标需要做些什么?
附注,我想到的是 - 将CMS的响应保存到启用了 ETag 缓存机制的S3 / CloudFront中,让他们确定是否可以使用浏览器上的缓存响应。 / p>
我想知道这是不是一个好习惯?
感谢
答案 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。