Mit Jinja schreiben
Seit du mehr mit Airflow arbeitest, hast du verschiedene Benachrichtigungs-Callbacks hinzugefügt, merkst aber, dass in deinem Posteingang jedes Mal dieselben Nachrichten landen. Es ist schwer, eine bestimmte Nachricht zu finden, wenn die Betreffzeile immer gleich ist. Nachdem du über Jinja-Unterstützung in Airflow gelesen hast, wird dir klar: Du kannst jetzt identifizierende Infos hinzufügen, damit deine Dags für jeden Tageslauf einen eigenen Report senden. Du startest damit, den sales_update-Dag zu aktualisieren, sodass er dir nach erfolgreichem Abschluss eine E-Mail mit einem templated Betreff schickt.
Alle notwendigen Airflow-Imports sind bereits vorhanden, und die Tasks pull_sales_data und generate_sales_report sind schon definiert.
Diese Übung ist Teil des Kurses
<Kurs>Einführung in Apache Airflow mit Python</Kurs>Übungsanweisungen
Richte den Dag so ein, dass er dir eine E-Mail sendet, wenn er ohne Fehler abgeschlossen wurde.
Setze das Attribut
subjectfür die Benachrichtigungs-E-Mail.Verwende eine Jinja-Vorlage, um das Ausführungsdatum in die Betreffzeile aufzunehmen:
Sales update successfully processed for YYYY-MM-DD
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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()