Schrijven met Jinja
Sinds je meer met Airflow werkt, heb je verschillende meldingscallbacks toegevoegd, maar je merkt dat je telkens dezelfde berichten in je inbox krijgt. Het is lastig om iets terug te vinden als het onderwerp altijd hetzelfde is. Na te hebben gelezen over Airflows Jinja-ondersteuning, bedenk je dat je nu identificerende informatie kunt toevoegen zodat je Dags voor elke dagrun een apart rapport sturen. Je besluit te beginnen met het updaten van de sales_update-Dag, zodat je een e-mail ontvangt met een getemplate onderwerp wanneer deze succesvol is afgerond.
Alle benodigde Airflow-imports zijn al beschikbaar en de taken pull_sales_data en generate_sales_report zijn al gedefinieerd.
Deze oefening maakt deel uit van de cursus
Introductie tot Apache Airflow in Python
Oefeninstructies
Stel de Dag zo in dat je een e-mail krijgt wanneer deze zonder fouten voltooit.
Stel het attribuut
subjectin voor de meldingsmail.Gebruik een Jinja-template om de run-datum in de onderwerpregel op te nemen:
Sales update successfully processed for YYYY-MM-DD
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
# 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()