Viết với Jinja
Khi làm việc nhiều hơn với Airflow, bạn đã thêm nhiều callback thông báo nhưng nhận ra rằng mỗi lần đều nhận cùng một nội dung trong hộp thư. Rất khó tìm đúng email khi dòng tiêu đề lúc nào cũng giống nhau. Sau khi đọc về việc Airflow hỗ trợ Jinja, bạn nhận ra mình có thể thêm thông tin nhận diện để đảm bảo mỗi Dag gửi báo cáo cho từng ngày chạy. Bạn quyết định bắt đầu bằng cách cập nhật Dag sales_update để gửi email cho bạn với tiêu đề dùng template khi hoàn tất thành công.
Tất cả import cần thiết của Airflow đã có sẵn, và các tác vụ pull_sales_data và generate_sales_report đã được định nghĩa.
Bài tập này là một phần của khóa học
Giới thiệu về Apache Airflow bằng Python
Hướng dẫn bài tập
Cấu hình Dag để gửi email cho bạn khi hoàn tất mà không có lỗi.
Thiết lập thuộc tính
subjectcho email thông báo.Dùng mẫu Jinja để đưa ngày chạy vào dòng tiêu đề:
Sales update successfully processed for YYYY-MM-DD
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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()