Airflow

Airflow 메일 전송, EmailOperator, SMTP, Gmail

pepega 2022. 3. 15. 15:31

airflow.cfg
EmailOperator
Gmail
활용하였다.
 
관련 코드
https://github.com/GHGHGHKO/airflow/blob/master/dags/mail_test.py
 
airflow.cfg
[smtp] 설정 문서
https://airflow.apache.org/docs/apache-airflow/stable/configurations-ref.html#config-smtp
 
EmailOperator
https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/operators/email/index.html
 
Gmail SMTP 활용
https://support.google.com/mail/answer/7126229?hl=ko 

airflow.cfg [smtp] 설정

airflow.cfg 내용은
github에 올리지 않았다.
설정은 아래와 같이 했다.
 
Gmail SMTP 활용 방법은 자료가 많고 설정하기도 쉬워서
따로 적지 않았다.
 

[smtp]

# If you want airflow to send emails on retries, failure, and you want to use
# the airflow.utils.email.send_email_smtp function, you have to configure an
# smtp server here
smtp_host = smtp.gmail.com
smtp_starttls = False
smtp_ssl = True
# Example: smtp_user = airflow
smtp_user = smtp_user_gmail_id
# Example: smtp_password = airflow
smtp_password = your_password
smtp_port = 465
smtp_mail_from = smtp_user_gmail_id
smtp_timeout = 30
smtp_retry_limit = 5

 
 

send_email TAG 생성

    email_operator = EmailOperator(
        task_id='send_email',
        to='receiver@example.com',
        subject='[TEST] 테스트 메일입니다.',
        html_content="""
                        테스트 메일입니다.<br/><br/> 
                        ninja template<br/>
                        {{ data_interval_start }}<br/>
                        {{ ds }}<br/>
                    """,
    )

 
jinja template을 지원한다.
 
공식 문서에 따르면
파일도 첨부가 가능하다.
 
주간에 무거운 데이터를 추출하기 부담스러우니
새벽에 데이터 추출 스케줄을 걸어두고
실무자에게 메일을 보내면 업무에 도움이 될 것 같다.
 
물론 작동도 잘 된다.
 

'Airflow' 카테고리의 다른 글

Airflow PostgresOperator Custom 하기  (0) 2022.03.17
Airflow custom Operator 만들기  (2) 2022.03.16
Airflow BranchSQLOperator 활용  (0) 2022.03.14
Docker Airflow Oracle 활용하기  (0) 2022.03.10
Docker Airflow 설치하기  (2) 2022.03.09