Jinja を使った記述
Airflow を使い慣れてきたところで、さまざまな通知コールバックを追加しましたが、受信トレイに届くメッセージがいつも同じ内容で困っています。件名が毎回同じでは、目的のメッセージを見つけるのが大変です。Airflow の Jinja サポートについて調べたところ、件名に識別情報を追加して、DAG が実行されるたびにその日付を含むレポートを送れることがわかりました。まずは 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()