Skriva med Jinja
Allteftersom du har arbetat mer med Airflow har du lagt till olika notifieringscallbacks, men du märker att du får samma meddelanden i inkorgen varje gång. Det är svårt att hitta ett specifikt meddelande när ämnesraden alltid ser likadan ut. Efter att ha läst om Airflows Jinja-stöd inser du att du kan lägga till identifierande information så att dina DAG:ar skickar en rapport för varje dags körning. Du bestämmer dig för att börja med att uppdatera DAG:en sales_update så att den skickar ett e-postmeddelande med en mallad ämnesrad när den slutförs utan fel.
Alla nödvändiga Airflow-importer finns redan tillgängliga, och uppgifterna pull_sales_data och generate_sales_report är redan definierade.
Den här övningen är en del av kursen
Introduktion till Apache Airflow i Python
Övningsinstruktioner
Konfigurera DAG:en så att den skickar ett e-postmeddelande när den slutförs utan fel.
Ange attributet
subjectför notifieringsmejlet.Använd en Jinja-mall för att inkludera körningsdatumet i ämnesraden:
Sales update successfully processed for YYYY-MM-DD
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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()