섹션5: Python & Email 오퍼레이터 with Xcom

류홍규·2023년 8월 13일
0

airflow

목록 보기
4/18
post-thumbnail

Python -> Email 오퍼레이터 Xcom 전달

  • Email 오퍼레이터는 어떤 파라미터에 JinJa Template를 쓸 수 있을까?

airflow_공식문서_email.operator


to, subject, html_content, files 가 Template을 쓸 수 있는 파라미터임을 확인할 수 있다.


from airflow import DAG
import pendulum
from airflow.decorators import task
from airflow.operators.email import EmailOperator

with DAG(
    dag_id='dags_python_email_xcom',
    schedule="0 8 1 * *",
    start_date=pendulum.datetime(2023, 3, 1, tz="Asia/Seoul"),
    catchup=False
) as dag:
    
    @task(task_id='something_task')
    def some_logic(**kwargs):
        from random import choice
        return choice(['Success', 'Fail'])
    
    send_email = EmailOperator(
        task_id='send_email',
        to='hongkyu08@gmail.com',
        subject='{{ data_interval_end.in_timezone("Asia/Seoul") | ds }} some_logic 처리결과',
        html_content='{{ data_interval_end.in_timezone("Asia/Seoul") | ds }} 처리 결과는 <br> \
            {{ ti.xcom_pull(task_ids="something_task")}} 했습니다 <br>'
    )
    
    some_logic() >> send_email

profile
공대생의 코딩 정복기

0개의 댓글