8

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

4

3 回答 3

4

是的,这是可能的,您需要使用此处提到的“流式执行” 。

使用Google Cloud Pub/Sub作为流媒体源,您可以将其用作管道的“触发器”。

在 App Engine 中,您可以使用REST API对 Pub/Sub Hub 执行“Pub”操作。

于 2015-04-14T11:22:07.180 回答
1

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

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

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

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

然后,您可以将端点或 servlet 添加到 GAE,当被调用时,它会运行设置管道的代码。

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

于 2015-10-23T15:13:57.010 回答
0

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

于 2015-04-14T14:11:19.663 回答