如何从管道内或管道运行之前获取数据流作业 ID?

Posted

技术标签:

【中文标题】如何从管道内或管道运行之前获取数据流作业 ID?【英文标题】:How do I get a dataflow Job ID from within the pipeline or before the pipeline ran? 【发布时间】:2020-12-04 03:39:44 【问题描述】:

我想在实际运行管道或在管道内部之前将数据流的作业 ID 作为字符串获取。

例如,假设我有这个:

DataflowOptions options = optionsConst.getOptions();         
Pipeline p = Pipeline.create(options);
String jobID = doSomthing(); <-- I'd like to grab the job id here

PCollection<KV<String, Object>> refData = p.apply("BigTable Access", BigtableIO.read()
                .withProjectId(options.getBigtableProjectId())
                .withInstanceId(options.getBigtableInstanceId())
                .withTableId(options.getLookupTableId()))
                .apply("Keep tags valid versions", ParDo.of(new MethodThatDoesSomethingWithJobID(**jobId**))); <-- Or inside this

【问题讨论】:

【参考方案1】:

这是不可能的,因为 Job Id 是在您开始运行它时创建的。您可以做的是在开始运行管道后保存输出,或返回list job running

【讨论】:

您也可以在 PipelineOptions 中为作业指定作业名称,但这不是作业 ID,正如 Ramses 正确指出的那样。

以上是关于如何从管道内或管道运行之前获取数据流作业 ID?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Azure REST API 从管道中获取所有变量?

管道符和作业控制shell变量和环境变量配置文件

如何将完成的管道作业构建发布到公共 Jenkins 实例?

Jenkins Pipeline作业获取另一个jenkins作业的构建状态。

如何在詹金斯中获取管道作业的 URL

Linux学习笔记(二十四)管道符和作业控制shell变量环境变量配置文件