컨테이너·워크플로우 자동화/Airflow로 워크플로우 자동화하기

Airflow Task 상태를 기반으로 ETL 적재 성공·실패를 판단하는 방법

Data Jun 2026. 2. 3. 13:32

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을 남긴다.