【发布时间】:2018-11-02 05:31:52
【问题描述】:
我使用 Beam SDK 在 python 中编写了流式 Google Dataflow 管道。有关于我如何在本地运行它并设置 -runner 标志以在 Dataflow 上运行它的文档。
我现在正在尝试将其自动部署到 CI 管道(bitbucket 管道,但并不真正相关)。有关于如何“运行”管道的文档,但没有真正“部署”它。我测试过的命令如下所示:
python -m dataflow --runner "DataflowRunner" \
--jobName "<jobName>" \
--topic "<pub-sub-topic"" \
--project "<project>" \
--dataset "<dataset>" \
--worker_machine_type "n1-standard-2" \
--temp_location "gs://<bucket-name>/tmp/"
这将运行作业,但因为它是流式传输的,所以它永远不会返回。它还在内部管理包装和推送到存储桶。我知道我是否终止了它继续运行的进程,但是在 CI 服务器上设置它,以便我可以检测该进程是否实际成功或者我只是在超时后终止它。
这看起来很荒谬,好像我遗漏了一些明显的东西,但是我如何以一种我可以可靠地知道它是从 CI 管道部署的方式在数据流上打包和运行这个模块?
【问题讨论】:
-
不应该部署为模板吗?
标签: python google-cloud-dataflow