SmtpNotifier の実装
失敗コールバックの作成に成功したことで、チームリードからすべての DAG 実行が成功した際にチームの共有メールアドレスへ通知を送るよう依頼されました。Airflow のドキュメントを確認した結果、Airflow 組み込みの通知フレームワークを使うのが最善の方法だと判断しました。
dag と task オブジェクトはすでにインポート済みです。また、alert_on_failure コールバック関数、および get_sales_data と process_sales_data タスクはすでに定義されています。
この演習はコースの一部です
Python で学ぶ Apache Airflow 入門
演習の手順
- SMTP 通知オブジェクトをインポートしてください。
- DAG に成功コールバックの属性を追加してください。
- 通知の送信先を [email protected] に設定してください。
- 件名を含めてください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Import the notifier
from airflow.providers.smtp.notifications.smtp import ____
# Add a success callback notifier
@dag(dag_id='sales_etl_dag',
on_failure_callback=alert_on_failure,
____=SmtpNotifier(
to="____",
from_email="[email protected]",
____="sales_etl_dag run succeeded!"
))
def sales_etl_dag():
get_sales_data() >> process_sales_data()
sales_etl_dag()