如何从 App Engine 运行 Google Cloud Dataflow 作业?

How to run Google Cloud Dataflow job from App Engine?

阅读 Cloud Dataflow 文档后,我仍然不确定如何从 App Engine 运行 我的数据流作业。可能吗?我的后端是用 Python 还是 Java 写的相关吗?谢谢!

是的,这是可能的,您需要使用提到的 "Streaming execution" here

使用 Google Cloud Pub/Sub 作为流媒体源,您可以将其用作管道的 "trigger"。

在 App Engine 中,您可以使用 REST API 对 Pub/Sub 集线器执行 "Pub" 操作。

可能有一种方法可以从 App Engine 提交您的 Dataflow 作业,但是由于缺少文档,这并不是积极支持的方法。 APP Engine 的运行时环境使得执行某些所需的操作变得更加困难,例如获取凭据,提交 Dataflow 作业。

一种方法确实是在 App Engine 中使用 Pub/Sub 让 Cloud Dataflow 知道新数据何时可用。然后,Cloud Dataflow 作业将持续 运行,App Engine 将提供数据进行处理。

另一种方法是将设置 Cloud Dataflow 管道的代码添加到 App Engine 中的 class(包括将 Dataflow SDK 添加到您的 GAE 项目)并按照此处所述以编程方式设置作业选项:

https://cloud.google.com/dataflow/pipelines/specifying-exec-params

确保将 'runner' 选项设置为 DataflowPipelineRunner,以便它在 Google 云平台上异步执行。由于管道 运行ner(实际上 运行s 您的管道)不必与启动它的代码相同,因此此代码(直到 pipeline.run() )可以是在 App Engine 中。

然后您可以向 GAE 添加端点或 servlet,在调用时,运行s 是设置管道的代码。

要安排更多,您可以在 GAE 中有一个 cron 作业,它调用启动管道的端点...