[Airflow] Python/email Operator간 Xcom 사용

2024. 2. 11. 21:48·Data Engineering/Airflow
목차
  1. Email Operator에서 사용 가능한 Template
  2. Python Operator에서 Email Operator로 Xcom 전달하기
  3. Dag 실행하기


Email Operator에서 사용 가능한 Template

▪ 'to', 'subject', 'html_content', 'files' 파라미터에 Template 적용 가능 

Python Operator에서 Email Operator로 Xcom 전달하기

▪ PythonOperator에서 return한 값을 ti객체에 xcom_pull 함수를 사용하여 값 받아오기

▪ 이때 template 문법을 사용해야함 


dags_python_email_xcom.py

▪ 'something_task'에서 'Success' 와 'Fail' 중 하나의 값을 랜덤으로 return해서 Xcom 전달

▪ 'send_email'에서 return한 값을 가져오고, 해당 시간을 기준으로 이메일 제목과 내용을 작성해서 전송 

 

from airflow import DAG
import pendulum
import datetime
from airflow.decorators import task
from airflow.operators.email import EmailOperator
with DAG(
dag_id="dags_python_email_operator",
schedule="0 8 1 * *",
start_date=pendulum.datetime(2023, 12, 19, 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='dojun43@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
 

Dag 실행하기

▪ dag을 airflow에 upload하고, webserver 접속해서 dag unpause 

▪ 이메일을 확인해보면 정상적으로 이메일이 전송됨

 

 

 

 

참고:

 

Airflow 마스터 클래스 강의 - 인프런

데이터 파이프라인을 효율적으로 만들고 관리하기 위한 Orchestration 도구인 Airflow에 대해 배우는 강의입니다. 초보자도 차근차근 배울 수 있는 Airflow 마스터 클래스, 환영합니다!, 데이터 파이프

www.inflearn.com

 

 

'Data Engineering > Airflow' 카테고리의 다른 글

[Airflow] BranchPython Operator로 분기처리  (1) 2024.02.21
[Airflow] 전역 공유변수 Variable  (0) 2024.02.21
[Airflow] Python/Bash Operator간 Xcom 사용  (2) 2024.02.04
[Airflow] Bash Operator에서 Xcom 사용  (0) 2024.02.04
[Airflow] Python Operator에서 Xcom 사용  (0) 2024.02.01
  1. Email Operator에서 사용 가능한 Template
  2. Python Operator에서 Email Operator로 Xcom 전달하기
  3. Dag 실행하기
'Data Engineering/Airflow' 카테고리의 다른 글
  • [Airflow] BranchPython Operator로 분기처리
  • [Airflow] 전역 공유변수 Variable
  • [Airflow] Python/Bash Operator간 Xcom 사용
  • [Airflow] Bash Operator에서 Xcom 사용
Doodo
Doodo
  • Doodo
    Doodo
    Doodo
  • 전체
    오늘
    어제
    • 분류 전체보기 (192)
      • CS (17)
        • Network (11)
        • Database (6)
      • Language (19)
        • Python (11)
        • SQL (6)
        • R (2)
      • Linux (17)
      • DevOps (35)
        • Git (7)
        • Docker (8)
        • Kubernetes (9)
        • GCP (4)
        • AWS (7)
      • Data Engineering (50)
        • 책 리뷰 (14)
        • Airflow (35)
        • Redis (1)
      • DBMS (21)
        • CUBRID (21)
      • ML & DL (2)
      • 코딩테스트 (24)
      • 프로젝트 (7)
        • 서울시 대기현황 데이터 적재 프로젝트 (4)
        • CryptoStream (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
Doodo
[Airflow] Python/email Operator간 Xcom 사용
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.