Airflow 有没有办法将失败任务的错误文本传递到另一个任务中?

Airflow 有没有办法将失败任务的错误文本传递到另一个任务中?,airflow,Airflow,我定义了一个DAG,其中包含许多任务,最后一个任务只有在前面的任何任务失败时才会运行。此任务只是将DAG运行遇到的错误发布到松弛通道 我真正想要的是,如果发送到Slack通道的消息包含记录在任务日志中的实际错误,则为错误提供即时上下文,并可能避免Ops必须挖掘日志 这是可能的吗?这完全可能,最好使用Xcom接口来实现,请参见问题或。虽然这在Xcoms中是可能的,但实现过程中会遇到挑战。为了能够优雅地推送错误消息,您必须将操作符的execute()方法包装成try。但是,如果必须从execute(

我定义了一个DAG,其中包含许多任务,最后一个任务只有在前面的任何任务失败时才会运行。此任务只是将DAG运行遇到的错误发布到松弛通道

我真正想要的是,如果发送到Slack通道的消息包含记录在任务日志中的实际错误,则为错误提供即时上下文,并可能避免Ops必须挖掘日志


这是可能的吗?

这完全可能,最好使用Xcom接口来实现,请参见问题或。虽然这在
Xcom
s中是可能的,但实现过程中会遇到挑战。为了能够优雅地推送错误消息,您必须将
操作符的
execute()
方法包装成
try。但是,如果必须从
execute()
方法发布
Xcom
(异常本身除外),这将产生干扰。我建议您编写一个
操作符
/
mixin
,它可以将此行为添加到任何其他
操作符
,事实上我相信,因为
XCom
s是
气流
提供的任务间
通信的唯一方式,这是您唯一完全可行的方法,最好使用Xcom接口来实现,请参见问题或。虽然使用
Xcom
s可以实现这一点,但实现过程中会遇到一些挑战。为了能够优雅地推送错误消息,您必须将
操作符的
execute()
方法包装成
try。但是,如果必须从
execute()
方法发布
Xcom
(异常本身除外),这将产生干扰。我建议您编写一个
操作员
/
混入
,可以将此行为添加到任何其他
操作员
事实上,我相信由于
XCom
气流
提供的任务间
通信的唯一方式,因此它是您唯一的选择