DMS Airflow 支持配置告警消息通知,在 DAG 任务执行成功或失败时及时发送通知。可以使用 DMS 内置消息通知,也可以配置自定义 SMTP 邮件服务发送告警邮件。
前提条件
使用 DMS 消息通知
进入目标代码仓库。
配置依赖包。
from airflow.providers.alibabadms.cloud.notifications.dms_notification import DmsNotifier配置告警消息通知。
告警消息默认通知工作空间的管理员,可以前往消息通知管理修改接收消息的对象。
失败告警:向
DAG的default_args添加on_failure_callback参数,取值为lambda context: DmsNotifier(success=False).notify(context)。成功告警:向
DAG的default_args添加on_success_callback参数,取值为lambda context: DmsNotifier(success=True).notify(context)。
示例代码:
dag = DAG( dag_id='iac_ove_test', default_args={ 'on_failure_callback':lambda context: DmsNotifier(success=False).notify(context), 'on_success_callback':lambda context: DmsNotifier(success=True).notify(context) } )
使用自定义邮件服务
通过配置 SMTP 服务参数和 Airflow 连接,可以使用自定义邮件服务发送 Airflow 告警通知邮件。配置分为两步:
通过 Airflow 实例的配置选项设置 SMTP 服务参数。
通过 Airflow 创建
smtp_default连接,存储邮箱认证信息。
两步都完成后,Airflow 才能正常发送告警邮件。
步骤一:配置 SMTP 服务参数
登录数据管理DMS 5.0。
单击控制台左上角的
图标,选择。说明若您使用的是非极简模式的控制台,请在顶部菜单栏中,选择。
单击Airflow实例所在的工作空间名,然后在左侧选择。
在目标 Airflow 实例的操作列,单击配置选项。
对话框弹出后,单击添加配置选项,依次添加以下 SMTP 配置项。
重要smtp_ssl和smtp_starttls是互斥的两种加密方式,不能同时设为True。配置选项
示例值
说明
smtp_hostsmtp.qiye.aliyun.comSMTP 服务器地址,由邮件服务提供商提供
smtp_port465SMTP 服务端口。使用 SSL 加密时通常为 465,使用 STARTTLS 加密时通常为 587
smtp_sslTrue是否启用 SSL 加密。启用时需将
smtp_starttls设为Falsesmtp_starttlsFalse是否启用 STARTTLS 加密。启用时需将
smtp_ssl设为Falsesmtp_mail_fromsender@example.com告警邮件的发件人地址
smtp_usersender@example.comSMTP 服务器认证的登录账号,通常与发件人地址一致
单击确认。
等待配置生效。Airflow 实例的状态会变更为部署中,状态重新变为运行中时表示配置已生效。
步骤二:配置 Airflow 连接
SMTP 服务参数配置完成后,需要配置 Airflow 的连接,用于存储邮箱的认证信息。
在目标 Airflow 实例的操作列,单击打开,进入 Airflow Web UI 界面。
在左侧导航栏,选择 。
单击右上角的添加连接,配置以下参数。
参数
值
说明
连接ID
smtp_default固定值,不可修改。Airflow 默认通过此 ID 获取 SMTP 认证信息
连接类型
SMTP
选择SMTP
登录
邮箱地址
与
smtp_user配置项的值保持一致密码
邮箱密码
邮箱的登录密码或应用专用密码(授权码)
单击保存。
配置完成后,可以使用 DAG 的 EmailOperator 或设置 email_on_failure = True 触发告警邮件,验证 SMTP 配置是否生效。
> Airflow实例