在aws上的ETagcaching

我需要将由node restify支持的API Server迁移到使用AWS提供的API Gateway + lambda函数的东西。

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

目前, etagcaching是通过调整中间件完成的。 我想知道我需要做什么才能在新的解决scheme(API网关+ lambda)中实现同样的目标?

一个侧面说明,我想到的是 – 保存从CMS的响应到S3 / CloudFront与启用ETagcaching机制,让他们确定是否可以使用浏览器上的caching响应。

我想知道这是否是一个好的做法?

谢谢

首先,API网关具有单独的caching选项 ,您可以在其中caching更适合API内容caching的特定TTL的响应。

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

如果您仅将API网关Lambda用作代理,并且还要在Lambda中完成重要的数据转换或生成,则可以设置AWS CloudFront的API Gatewaycaching响应。

如果在代理(带有Lambda的API网关)上只进行了非常轻的数据转换和生成,则只能使用CMS的CloudFront,并使用Edge Lambda在CloudFront边缘位置运行,以对来自CMS的响应也与caching。

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