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