我一直在做一些实验,对于日志分析中的 ADF 日志,相关 ID 似乎是管道 RunId 的副本。 触发器 ID 显示为空白。
我有一个调用其他管道的管道。
ScheduledTrigger -> Pipeline 1 -> activity 1 execute pipeline(pipeline 2)
-> activity 2 execute pipeline(pipeline 3)
我想要一个 ID,使我能够查找从父触发器运行的所有管道和活动。 我以为这会在相关 ID 或触发器 ID 中。
我知道我可以通过将 @trigger() 对象的触发器 ID 作为参数通过管道堆栈传递来解决这个问题,但想知道我是否缺少一些自动获取它的技巧?
只是关闭它 - 我做了我预期我需要做的事情。最顶层的父管道复制管道的 RunId,并将其作为参数传递给所有子管道。 所有子管道都将此相同的 RunId 传递给其子管道(而不是其自己的 RunID)。
当我调用存储过程或外部资源(如 Web 或函数)时,我将相同的 RunID 作为必需参数传递。 这样,所有子级都可以使用一致的相关 ID,无论它们是管道、SP 还是外部调用。
我始终维护名称"RunID",以从任何组件进行日志分析,因此可以轻松全面了解所发生的情况。 这有点开销,当多个 ADF、函数、逻辑应用、Web 调用、SP 调用等出现问题时,它节省了数小时的调试时间,因为它们都通过此 RunID 绑定在一起。
希望这有帮助。马克。