【发布时间】:2017-07-23 04:24:11
【问题描述】:
我正在尝试在 AWS 上实施如下解决方案:
我有一个每天运行一次的爬虫来索引某些网站。我想缓存这些数据并以 API 的形式公开它,因为在抓取之后,这些数据一整天都不会改变。爬虫重新取回后,我想使这个缓存失效并重建以提供更新的数据。我正在尝试使用无服务器架构来构建它。
可能的解决方案
很明显,爬虫将在 AWS Lambda 上运行。我不清楚的是如何管理将为数据提供服务的缓存。以下是我想到的一些解决方案
用于缓存的 S3 和 Cloudfront: 爬取后,将数据以 .json 文件的形式存储在 S3 中,将使用 AWS Cloudfront 进行缓存。当爬虫重新获取新数据时,它会重建这些文件并要求 Cloudfront 使缓存失效。
API Gateway DynamoDB:抓取后将数据存储在 DynamoDB 中,然后由缓存的 API Gateway 提供服务。这里唯一的问题是,当爬虫重新爬取时,我怎么能要求这个缓存在一天结束时失效?由于数据将是一天的静态数据,我怎么能不为 DynamoDB 运行的额外时间付费(因为如果我在 API Gateway 上实现缓存,那么只有一次调用 DynamoDB 进行缓存,之后它将处于空闲状态一天)
还有其他我想念的方法吗?
谢谢!
【问题讨论】:
-
您无需为 DynamoDB 的“闲置”一天付费。
标签: amazon-s3 amazon-dynamodb aws-lambda aws-api-gateway serverless-architecture