728x90
반응형
SMALL
Email 오퍼레이터
Airflow에서 기본 제공하는 오퍼레이터 중 하나이며, Email 전송할 수 있는 오퍼레이터이다. 기존 airflow 컨테이너를 종료한다.
ubuntu~$cd airflow
ubuntu~$sudo docker compose down
구 컨테이너의 restart policy 변경 후 종료한다.
ubuntu~$sudo docker update --restart=no $(sudo docker ps -a -q)
ubuntu~$sudo docker stop $(sudo docker ps -a -q)
새 컨테이너를 시작한다.
ubuntu~$sudo docker compose up
구글 계정 설정
Gmail 계정 내 설정하기에서 G-mail → 설정 → 모든 설정보기 → 전달 및 POP/IMAP → IMAP 사용으로 설정한다.
그 다음, 구글 계정 관리 → 검색 → 앱 비밀번호를 설정한다.
docker-compose.yaml
environment 항목에 다음 환경 변수를 추가한다.
AIRFLOW__SMTP__SMTP_HOST: 'smtp.gmail.com'
AIRFLOW__SMTP__SMTP_USER: '{gmail계정}'
AIRFLOW__SMTP__SMTP_PASSWORD: '##SMTP_PASSWORD##'
AIRFLOW__SMTP__SMTP_PORT: 587
AIRFLOW__SMTP__SMTP_MAIL_FROM: '{gmail계정}'
그 다음, git commit & push을 수행한다. 서버에서 git pull을 deploy.sh 파일로 진행하기 위해 다음과 같이 작성한다.
ubuntu~$cd /home/ubuntu
ubuntu~$vi deploy.sh
AIRFLOW_HOME=/home/ubuntu/yeardream_airflow
cd $AIRFLOW_HOME
git pull
sed -i 's/##SMTP_PASSWORD##/{앱 비밀번호 16자리}/g' $AIRFLOW_HOME/docker-compose.yaml
ubuntu~$chmod +x deploy.sh
ubuntu~$./deploy.sh
dags_email_operator.py
이메일 전송을 위한 DAG를 다음과 같이 작성한다.
from airflow import DAG
import pendulum
from airflow.operators.email import EmailOperator
with DAG(
dag_id="dags_email_operator",
schedule="0 8 1 * *",
start_date=pendulum.datetime(2024, 6, 1, tz="Asia/Seoul"),
catchup=False
) as dag:
send_email_task = EmailOperator(
task_id='send_email_task',
to='네이버아이디@naver.com',
subject='Airflow 성공메일',
html_content='Airflow 작업이 완료되었습니다'
)
728x90
반응형
LIST
'App Programming > Apache Airflow' 카테고리의 다른 글
[Apache Airflow] Custom 오퍼레이터 (0) | 2024.06.18 |
---|---|
[Apache Airflow] Python 오퍼레이터 (0) | 2024.06.17 |
[Apache Airflow] Cron Schedule (0) | 2024.06.17 |
[Apache Airflow] 개발 환경 구성 (0) | 2024.06.14 |
[Apache Airflow] DAG 개발 (0) | 2024.06.14 |