我试图自动化CI/CD的经典模板。
在留档后的GCS上创建和分阶段模板
在代码更改(错误修复等)时,我打算耗尽现有作业并创建一个同名的新作业。
为了耗尽现有的工作,我需要JOB_ID,但我只有在创建工作期间使用的JOB_NAME。
我看到的唯一方法是使用list命令并获取活动作业,处理输出以提取作业id以在排水命令中使用它。这似乎是一个相当迂回的方式。没有办法用Job_Name或至少从JOB_NAME中获取JOB_ID。
当您使用gcloud dataflow job run
命令创建作业时,运行此命令的响应应以以下方式返回JOB_ID
(例如,如果您创建批处理作业):
id: 2016-10-11_17_10_59-1234530157620696789
projectId: YOUR_PROJECT_ID
type: JOB_TYPE_BATCH
正如您所提到的,使用gcloud数据流作业列表
将是使用自动化关联JOB_NAME
和JOB_ID
的直接方法。使用Python脚本实现这一点的方法在社区的另一篇文章中描述。
GCP提供RESTAPI来更新数据流作业。无需显式耗尽现有作业并创建新作业。
你也可以通过Python代码来实现。参考我的GIST Python代码。