如何获取触发另一流水线的首个ID及ADF中Pipeline B获取Pipeline A的Run ID
在ADF中获取父流水线及触发链首个流水线的RunID
获取调用方Pipeline A的RunID
你需要在Pipeline A调用Pipeline B时,手动把A的RunID作为参数传递过去,步骤如下:
- 在Pipeline B的参数页面,新增一个字符串类型的参数,比如命名为
ParentRunId - 在Pipeline A的Execute Pipeline活动里,找到参数配置项,给B的
ParentRunId参数赋值为@pipeline().RunId - 这样在Pipeline B里,就能通过表达式
@pipeline().parameters.ParentRunId直接获取到A的RunID
获取触发链的首个流水线RunID
ADF没有内置的全局变量直接返回整个触发链的根RunID,需要通过逐层传递参数的方式实现:
- 如果首个流水线(比如Pipeline A)是手动触发的,在A里把自己的RunID作为
RootRunId参数传递给B;B再把这个RootRunId参数原样传递给后续调用的流水线(比如C),这样所有下游流水线都能拿到A的RunID - 如果首个流水线是由触发器触发的,在A里把触发器的RunID(通过
@trigger().runId获取)作为RootRunId传递给下游流水线,这样就能拿到触发整个流程的根触发器RunID
注意:如果嵌套层级多,每一层的Execute Pipeline活动都要记得传递这个RootRunId参数,确保下游能拿到正确的根ID。
内容的提问来源于stack exchange,提问作者Anirban
相关产品推荐
相关产品推荐

