在“执行管道”活动中是否可以捕获已执行管道的输出?
即:主管道按顺序执行2个管道。第一个管道会生成自己创建的run_id,需要将其作为参数转发给第二个管道。
我已经阅读了文档,并在主管道日志中检查了第一个管道的输出,看来这不可能直接实现?
到目前为止,我们仅使用了2条没有主管道的管道,但是我们想更多地重用逻辑。当前,我们有1个管道调用下一个管道并转发run_id。
答案 0 :(得分:2)
ExecutePipline当前无法将任何内容从内部传递到其输出。您只能获取runID或名称。
由于某些奇怪的原因,ExecutePipeline的输出不是作为JSON对象而是作为字符串返回。因此,如果您尝试选择类似@activity('ExecutePipelineActivityName').output.something
这样的输出属性,则会出现此错误:
“字符串”类型的值不支持属性选择
我发现我必须使用以下命令来获取运行ID:
@json(activity('ExecutePipelineActivityName').output).pipelineRunId
答案 1 :(得分:0)
execute管道活动只是另一个活动,其输出可以被其他活动捕获。 https://docs.microsoft.com/en-us/azure/data-factory/control-flow-execute-pipeline-activity#type-properties
如果您要使用预先执行的管道的runId,它将看起来像这样:
@activity('ExecutePipelineActivityName').output.pipeline.runId
希望这对您有帮助!