Airflow 配置邮件和报警功能
【摘要】 Airflow 支持邮件通知和告警。
1.概述
Airflow 支持邮件通知和告警。
2. 创建 SMTP 连接
2.1 源邮箱开启SMTP服务
现以 126.com 邮箱为例。进入邮箱设置,开启 IMAP/SMTP服务 和 POP3/SMTP服务,以及需要获得授权码。
注意关键的信息:SMTP服务器: smtp.126.com,POP3/SMTP/IMAP服务全部支持SSL连接。



2.2 CLI 创建 SMTP 连接
airflow connections add 'smtp_default' # connection id
--conn-type 'smtp' # connection type
--conn-host 'smtp.126.com' # SMTP 服务器
--conn-port 465 # SMTP 服务器端口,一般支持SSL端口为465,支持TLS是587
--conn-login 'xxxxxxxx@126.com' # 开启 SMTP 服务的邮箱地址
--conn-password 'xxxxxxxxxx' # 开启 SMTP 服务的邮箱对应的授权码
--conn-extra '{"use_ssl": true, "disable_tls": true, "from_email": "xxxxxxxxxxxx@126.com"}' # airflow默认开启SSL和TLS安全连接,需要根据开启 SMTP 服务邮箱的情况设置。from_email设置为开启 SMTP 服务的邮箱地址
2.3 Web UI 创建 SMTP 连接
登录Web UI页面,创建连接。参考CLI命令填写连接配置。


3. DAG 文件配置
3.1 工作流成功发送邮件
在工作流的最后添加一个 EmailOperator,当工作流中的 Task实例成功执行后,使用默认的 conn_id(smtp_default) 发送邮件。
from airflow.providers.smtp.operators.smtp import EmailOperator
with DAG(...) as dag:
...
...
t4 = EmailOperator(task_id = "Job_Success",to=["xxxxx@qq.com","xxxx@126.com"],subject="Job finished",html_content="""<h3>Job Success</h3>""")
t1 >> [t2, t3]>>t4
3.2 工作流中 Task 实例失败和重试发送邮件
工作流中的 Task 实例不止一个,为了作用到所有的 Task 实例,所以需要在 DAG 对象的 default_args 进行配置,使用默认的 conn_id(smtp_default) 发送邮件。

4. 邮件发送效果
4.1 工作流成功运行的效果

4.2 Task 实例失败的效果


【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)