我试图在AWS上实现一个解决方案,如下所示:
我有一个爬虫,将运行一天一次,以索引某些网站。我想缓存这些数据,并以API的形式公开它,因为爬行之后,这些数据将在一整天内不会改变。在爬行器重取之后,我想要使这个缓存失效并重新构建,以服务于更新的数据。我正在尝试使用无服务器架构来构建这个系统。
可能的解决方案
很明显,爬虫将运行在AWS Lambda上。我不清楚的是如何管理将为数据服务的缓存。以下是我想出的一些解决办法
还有别的办法让我错过吗?
谢谢!
发布于 2017-07-25 10:34:39
您可以在S3中的不同路径中存储新数据,其中包括创建日期。也许是这样:
index_2017_08_11.json然后,就没有必要使CloudFront端的缓存无效。因为要访问这些新对象,您需要提供新的URL,所以旧的CloudFront缓存不会成为问题。您可以使用S3删除前一天的S3 TTL特征文件。
另一种选择是将过期缓存HTTP头设置为在缓存应该无效中的数据设置时
字段允许您使用RFC 2616,超文本传输协议-- HTTP/1.1节3.3.1节中指定的格式指定过期日期和时间,例如:星期六,2015年6月27日23:59:59格林尼治时间
您可以在API中设置此标头,以指定对象何时失效。
由于数据将是静态的一天,我怎么能不支付额外的时间,DynamoDB将运行
如果数据是静态的,您是否可以将其存储在S3中,并使用API来提供来自S3而不是DynamoDB的数据?
https://stackoverflow.com/questions/45261473
复制相似问题