5

我想在 Google App Engine 中使用 Scrapy + Splash 抓取一个 javascript 网站。Splash 插件是一个 Docker 镜像。有没有办法在 Google App Engine 中使用它?App Engine 本身使用 Docker 映像,但我不确定如何加载和访问辅助映像(这就是 Splash 的使用方式)。这是 Splash 安装说明

4

2 回答 2

1

您可以在 App Engine 柔性环境中使用自定义运行时。

自定义运行时允许您构建在 Dockerfile 定义的环境中运行的应用程序。通过使用 Dockerfile,您可以使用不属于 Google Cloud Platform 的语言和包,并使用在 App Engine 柔性环境中使用的相同资源和工具。

探索有关自定义运行时的更多信息。请注意,当您使用自定义运行时时,您必须编写应用程序代码来处理一些灵活的环境生命周期和健康检查请求。查看如何构建自定义运行时以获取更多信息。

于 2019-11-14T06:52:03.877 回答
0

单独部署 Splash 服务是实现此目的的正确方法。

我继续测试了一些不同的设置,唯一允许我在 App Engine 上使用 Splash 的方法是将其部署为自定义域,将 forwarded_ports 设置为能够通过其 IP 地址直接连接到服务的实例之一。

这显然不是一个适当的解决方案,因为它有很多限制,最后,它基本上变成了使用谷歌计算引擎,没有它提供的所有控制。

我的建议是您只将应用程序的 Scrapy 服务部署到 App Engine,而将 Splash 服务留在其他地方,例如在 GCE 实例中。

一旦你有了它,你需要做的就是为实例设置一个静态 IP 地址,并通过它从你的 App Engine 应用程序连接到它。

于 2019-11-15T12:00:59.583 回答