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

时间:2015-04-14 09:23:37

标签: google-app-engine google-cloud-dataflow

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

3 个答案:

答案 0 :(得分:3)

是的,这是可能的,你需要使用"流媒体执行"如上所述here

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

从App Engine你可以做" Pub"使用REST API对Pub / Sub Hub执行操作。

答案 1 :(得分:1)

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

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

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

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

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

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

答案 2 :(得分:0)

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