GCP数据流作业部署

时间:2020-10-07 06:14:39

标签: google-cloud-platform google-cloud-dataflow

我正在尝试使Classic Template的CI / CD自动化。

documentation之后在GCS上创建和暂存的模板

关于代码更改(错误修复等),我打算耗尽现有作业并创建一个具有相同名称的新作业。

对于drain现有工作,我需要JOB_ID,但是只有我在工作创建期间使用的JOB_NAME。

我看到的唯一方法是使用list命令并获取活动作业,处理输出以提取作业ID以在 drain 命令中使用它。这似乎是一个回旋处。没有办法用Job_Name排干工作,或者至少从JOB_NAME获取JOB_ID。

2 个答案:

答案 0 :(得分:1)

使用gcloud dataflow jobs run命令创建作业时,运行此命令的响应应以以下方式返回JOB_ID(例如,如果您创建批处理作业):

    id: 2016-10-11_17_10_59-1234530157620696789
    projectId: YOUR_PROJECT_ID
    type: JOB_TYPE_BATCH

并使用您提到的gcloud dataflow jobs list是使用自动化将JOB_NAMEJOB_ID关联起来的直接方法。社区的其他post中介绍了使用Python脚本实现此目标的方法。

答案 1 :(得分:0)

GCP提供REST API来更新数据流作业。无需显着耗尽现有作业并创建新作业。

您也可以通过Python代码来实现。请参阅我的GIST中的python代码。