Google Cloud scheduler Java job容器化的Selenium



我有一个Java代码来执行一些与网页的交互,并使用Selenium。现在我想让这段代码每小时执行一次,我认为这是一个发现云世界的好机会。

我在Google Cloud上创建了一个帐户。因为我的应用程序需要有一个驱动程序来使用Selenium (Firefox的壁虎驱动程序),我必须创建一个docker映像来设置它需要的所有内容。

在谷歌云服务中,有"云调度程序"。它可以让我在我想要的时候运行代码。

但这是我的问题:

  • 我应该配置什么样的目标(HTTP, Pub/Sub, HTTP应用引擎)?
  • 因为我不使用谷歌云功能,我的容器将永远是向上的,这似乎不是一个好主意的价格原因?我希望我的容器只在执行时才启动。
  • 我也在考虑使用Quarkus框架来包装我的应用程序,因为我已经为云制作了它,并且非常快地启动,这对我来说是最好的选择吗?

如果有人能帮我看得更清楚一点,我会很高兴的。我不是一个完全的初学者,我作为Java/JavaScript开发人员工作了5年,现在已经完成了一些应用程序的dockerization,但是关于云的一切都是一个大的部分,不容易知道从哪里开始。

So you:

  • 正在使用docker镜像
  • 偶尔运行工作负载
  • 不愿意使用云功能

= =比;云运行是你最好的选择。这里是Google Cloud Run快速入门:https://cloud.google.com/run/docs/quickstarts/prebuilt-deploy

请记住,您的容器化应用程序需要侦听HTTP请求,因此请查看Cloud Run容器运行时契约

最后,您确实可以从Cloud Scheduler触发Cloud Run,这里有关于如何做的详细文档https://cloud.google.com/run/docs/triggering/using-scheduler

正如@MBHAPhoenix所说,Cloud Run是你最好的选择。然后可以从Cloud Scheduler触发作业。我们的一个项目目前正在运行这个场景,但是我们的容器是Python。我们在这里写了一篇文章

你应该注意,要从云调度程序触发云运行作业,你必须"保护它"。这意味着你不能直接在浏览器中输入URL。服务帐户将负责运行Cloud Run作业,然后您需要授予Cloud Scheduler服务对该服务帐户的访问权限,以便它可以调用Cloud Run作业。我一直想写一篇关于做这件事的确切步骤的帖子(我会尽量在这个周末完成)。

在成本方面,我们有文章

中的这个片段…Cloud Run只在接收到HTTP请求时运行。当HTTP请求进入时,它会扮演死角色,然后活过来执行您的代码。当它完成执行请求时,它会再次"死亡",直到下一个请求进入。这意味着你没有为空闲时间付费,即当它不做任何事情时.....

最新更新