我正在尝试使用AWS lambda,API网关和Dynamo作为数据存储区来实现具有GET和PUT API的用户服务
GET API将获取给定userId的数据,PUT将更新给定userId的用户详细信息
我的要求是
题:
您可以在API网关层缓存并通过向API网关发送Cache-Control: max-age=0
标头来使缓存无效(例如,从在PUT请求期间更改DynamoDB记录的Lambda)。您需要授予specific IAM permissions才能正常工作。请注意,您每月只能免费提出1000个请求;在此之后,您将收取每条路径无效的$ 0.005。
CloudFront具有类似的缓存和失效选项,但您可以直接从API Gateway获得所有相同的缓存选项。
另一种选择是cache at the DynamoDB layer,使用DynamoDB加速器。它为DynamoDB请求提供了重要的检索改进,并为您处理失效。可维护性,很难获得更好的选择。缺点是您不会像使用CloudFront或API Gateway缓存一样降低延迟。
最后,您还可以查看ElastiCache,您可以从Lambda函数访问它。但考虑到自己编写/读取/使缓存无效的开销,其他选项在长期内可能更易于维护。
您可能会发现AWS Caching Overview有助于提供更多缓存方法,具体取决于您的需求。