使用 Jinja 编写
随着您更多地使用 Airflow,您添加了各种通知回调,但发现每次收件箱里都是相同的消息。主题始终一样,导致很难定位具体哪一封。阅读了 Airflow 对 Jinja 的支持后,您意识到可以加入一些标识信息,确保您的 Dags 为每天的运行各自发送报告。您决定先从更新 sales_update Dag 开始:当成功完成时,给您发送一封带有模板化主题的电子邮件。
所有必需的 Airflow 导入都已可用,任务 pull_sales_data 和 generate_sales_report 也都已经定义。
本练习是课程的一部分
Python 中的 Apache Airflow 入门
练习说明
配置 Dag 在无错误完成时向您发送电子邮件。
为通知邮件设置
subject属性。使用 Jinja 模板在主题行中包含运行日期:
Sales update successfully processed for YYYY-MM-DD
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Add a notification when successful, including date in the subject
@dag(start_date=datetime(2026,4,30),
____=SmtpNotifier(
from_email="[email protected]",
to="[email protected]",
____="Sales update successfully processed for {{ ____ }}"
))
def sales_update():
pull_sales_data() >> generate_sales_report()
sales_update()