构建一个可扩展的网站抓取系统



目前,我有一台服务器正在运行。每当我收到请求时,我都希望有一些机制在其他资源(最好是动态创建的(上启动抓取过程,因为我不想在我的主实例上执行抓取。此外,我不希望其他实例在我不抓取数据时继续运行并向我收费。所以,最好是一个我可以请求开始抓取网站并在它完成时关闭的系统。

目前,我已经查看了谷歌云功能,但每个功能的上限为9分钟,所以它不符合我的要求,因为抓取需要更多的时间。我还查看了AWS SDK,它允许我们在运行时创建虚拟机并关闭它们,但我不知道如何将我的API脚本推送到新创建的AWS实例上。

此外,该系统应该是可扩展的。就像我有很多不同的脚本,抓取不同的网站。因此,一个稳健的解决方案将是理想的。我对使用任何技术都持开放态度。如有任何帮助,我们将不胜感激。感谢

我不知道如何将我的API脚本推送到新创建的AWS实例上。

这是通过使用UserData:实现的

当您在AmazonEC2中启动实例时,您可以选择将用户数据传递给该实例,该实例可用于执行常见的自动配置任务,甚至在实例启动后运行脚本。

因此,基本上,您将构建UserData来安装脚本、所有依赖项并运行它们。这将在启动新实例时执行。

如果您希望系统具有可扩展性,您可以在"自动缩放组"中为实例提供午餐,并根据需要进行放大或缩小。

另一种选择是将脚本作为Docker容器运行。例如,使用AWS Fargate。

顺便说一句,AWS Lambda有15分钟的限制,所以不比谷歌的功能多多少。

相关内容

  • 没有找到相关文章

最新更新