ETL 파이프라인에서 로그를 남길 때 중요한 것은
**“함수가 정상 실행됐는가”가 아니라 “작업이 성공했는가”**이다.
Airflow에서는 이 판단을 Task 상태(state) 로 명확하게 확인할 수 있다.
아래 코드는 Airflow 실행 컨텍스트에서
이전 Task의 상태를 기반으로 적재 결과를 판단하는 예시이다.
task_instance = context["task_instance"]
task_state = task_instance.previous_ti.state
if task_state == "success":
ingest_status = "SUCCESS"
error_message = None
else:
ingest_status = "FAILED"
error_message = task_instance.log_url
핵심은 previous_ti.state다.
이 값은 upstream task가 실제로 성공(success) 했는지,
아니면 실패(failed) 했는지를 Airflow가 이미 판단한 결과다.
성공한 경우에는 단순히 SUCCESS 상태만 기록하고,
실패한 경우에는 상세 에러 메시지 대신
Airflow 로그로 바로 접근할 수 있는 log_url을 남긴다.
'컨테이너·워크플로우 자동화 > Airflow로 워크플로우 자동화하기' 카테고리의 다른 글
| [프로젝트] Apache Airflow 기반 해양 센서 데이터 ETL 자동화 설계 (0) | 2026.02.09 |
|---|---|
| [프로젝트] Docker Compose 기반 Airflow와 PostgreSQL로 구성한 SQL 중심 ETL 파이프라인 (0) | 2026.02.09 |
| Airflow PythonOperator에서 params로 값을 전달하고 함수에서 사용하는 방법 (0) | 2026.02.03 |
| trigger_rule="all_done" 이란 무엇인가 (0) | 2026.02.03 |
| [트러블 슈팅] Airflow + PostgreSQL에서 KST 시간이 UTC처럼 저장되던 문제 (0) | 2026.01.23 |