气流将松弛消息发送到多个通道

时间:2018-08-16 12:04:38

标签: apache airflow

我使用的是Apache airflow,我想将消息发送到多个渠道,我想知道什么是最佳解决方案。 我有我的剧本:

t_success_notification = SlackAPIPostOperator(
task_id = 'success-notification'
, trigger_rule = 'all_success'
, channel = '#channel1'
, token = ...
, text = "success"
, dag = dag)

t_success_notification.set_upstream(task1)

那么我该怎么做才能将通知也发送到#channel2。我可以像这样在昏迷后列出频道吗?

...
, channel = '#channel1,#channel2,#channel3'
...

有人知道怎么做吗?问候

2 个答案:

答案 0 :(得分:1)

另一种设置方法是使用Slack集成来获取频道的电子邮件地址: https://astronomerteam.slack.com/apps/A0F81496D-email

这为我们提供了与频道关联的电子邮件地址。然后,我们只需将此电子邮件地址放在email参数中以获取DAG。这样一来,我们就不必为任何Slack频道通知使用单独的运算符,并且可以轻松地将警报发送到多个频道(成功,重试,失败等)。

答案 1 :(得分:0)

不幸的是,您无法使用易于使用的SlackPostOperator来做到这一点。如果您查看SlackPostOperator:https://airflow.apache.org/_modules/slack_operator.html的代码,它将使用SlackAPI:https://github.com/slackapi/python-slackclient的代码,并且从文档中可以看到它并没有采用多个通道作为参数。

正如另一位发帖人所述,一个好的解决方案是为每个闲置频道创建电子邮件别名,然后可以将这些电子邮件添加到“默认Args”部分的电子邮件设置中。即:     “电子邮件”:[“ channel1_integration@slack.com”,               “ channel2_integration@slack.com”],     “ email_on_failure”:错误,