将SMTP信息配置在Airflow的配置文件中,并在DAG定义中启用邮件提醒。
[email]
email_backend = airflow.utils.email.send_email_smtp
smtp_host = YOUR_HOST
smtp_starttls = True
smtp_ssl = False
smtp_port = YOUR_PORT
smtp_user = YOUR_USERNAME
smtp_password = YOUR_PASSWORD
from datetime import datetime
from airflow import DAG
from airflow.operators.bash_operator import BashOperator
from airflow.operators.python_operator import PythonOperator
from airflow.operators.email_operator import EmailOperator
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime(2021, 1, 1),
'retries': 1,
'retry_delay': timedelta(minutes=5),
'email_on_failure': True,
'email': 'YOUR_EMAIL',
}
dag = DAG('example_dag', default_args=default_args)
t1 = BashOperator(
task_id='print_date',
bash_command='date',
dag=dag)
t2 = PythonOperator(
task_id='calculate',
python_callable=calculate,
dag=dag)
t3 = EmailOperator(
task_id='send_email',
to='YOUR_EMAIL',
subject='Airflow Alert',
html_content='{{ ti }} failed',
dag=dag)
t1 >> t2 >> t3
其中,default_args中的email_on_failure和email字段表示在任务失败时发送邮件提醒,to字段指定收件人。EmailOperator中的html_content字段可自定义邮件内容。
注意:SMTP信息的添加不仅适用于邮件提醒,还可以用于其他需要SMTP连接的操作(例如发送邮件、发送Slack消息等)。