เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การเขียนด้วย Jinja

เมื่อเริ่มใช้งาน Airflow มากขึ้น คุณได้เพิ่ม callback การแจ้งเตือนต่าง ๆ เข้าไป แต่พบว่าได้รับข้อความที่มีเนื้อหาซ้ำกันในกล่องจดหมายทุกครั้ง ทำให้หาข้อความยากเพราะหัวเรื่องเหมือนกันเสมอ หลังจากได้อ่านเกี่ยวกับการรองรับ Jinja ของ Airflow คุณพบว่าสามารถเพิ่มข้อมูลระบุตัวตนให้ Dag ส่งรายงานพร้อมระบุวันที่ของแต่ละการรันได้แล้ว จึงตัดสินใจเริ่มจากการอัปเดต Dag sales_update ให้ส่งอีเมลพร้อมหัวเรื่องแบบ template เมื่อทำงานสำเร็จ

import ที่จำเป็นทั้งหมดของ Airflow พร้อมใช้งานแล้ว และ task pull_sales_data กับ generate_sales_report ได้รับการกำหนดค่าไว้แล้วเช่นกัน

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Apache Airflow เบื้องต้นด้วย Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • กำหนดให้ Dag ส่งอีเมลเมื่อทำงานเสร็จสมบูรณ์โดยไม่มีข้อผิดพลาด

  • กำหนด attribute subject สำหรับอีเมลแจ้งเตือน

  • ใช้ Jinja template เพื่อแสดงวันที่รันในหัวเรื่อง:

    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()
แก้ไขและรันโค้ด