우노
[Airflow] DAG에서 Airflow REST API 호출하는 방법 본문
들어가기 앞서,
- Airflow 환경
- airflow-stable helm chart를 사용해 GKE에 airflow가 설치된 상황
- 문제 상황
- DAG에서 Airflow REST API를 호출하고 싶음
- 해결 방법
- DAG는 Worker에서 동작하고, Airflow REST API 서버는 Webserver에서 동작하기 때문에
- DAG에서 Airflow REST API를 호출하고 싶다면
- Worker에서 Webserver로 REST API 내부 호출이 가능해야합니다.
- 따라서, basic auth를 사용해 Pod간 내부 호출을 할 수 있도록 API 관련 Airflow Configuration을 변경했습니다.
- 기타
- Worker Pod에서 Webserver Pod에 접근하기 위해
- Webserver Pod의 Service를 생성한 뒤, Service DNS를 사용해 접근하도록 설정했습니다.
Helm Chart - Basic Auth를 사용해 Airflow REST API를 호출할 수 있도록 Airflow Configuration 설정
기본 값
airflow: config: AIRFLOW__API__AUTH_BACKENDS : 'airflow.api.auth.backend.session'
수정
airflow: config: AIRFLOW__API__AUTH_BACKENDS : 'airflow.api.auth.backend.basic_auth'
Airflow REST API 호출 예제
curl -X GET \
--user "username:password" \
"http://airflow-web-custom.default.svc.cluster.local:8080/api/v1/importErrors"
- Basic Auth를 사용하기 위한 Airflow User는 이미 생성되어있다고 가정하겠습니다.
- Airflow Dashboard → Security → List Users에서 생성되어 있는 User를 확인할 수 있습니다.
참고
'Data > Airflow' 카테고리의 다른 글
[Airflow] ShortCircuitOperator란? (0) | 2024.03.08 |
---|---|
[Airflow] StatsD Exporter + Prometheus + Grafana On GKE (2) | 2023.11.17 |
[Airflow] Configuration 확인 명령어 (0) | 2023.09.26 |
[Airflow] 적용된 Executor 확인 명령어 (0) | 2023.09.04 |
[Airflow] schedule_interval CRON 표현식 사용 방법 (0) | 2023.06.22 |
Comments