GCP 数据流作业部署

GCP Dataflow Job Deployment

我正在尝试自动化 CI/CD 经典模板。

documentation

之后在 GCS 上创建并暂存模板

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

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

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

得到 JOB_ID

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

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

在社区中使用 gcloud dataflow jobs list as you mention will be the straightforward way to associate a JOB_NAME and a JOB_ID using automation. The way to achieve this with a Python script is described within this other

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

您也可以通过 Python 代码来完成。请参阅我的 GIST 获取 python 代码。