오늘의 인기 글
최근 글
최근 댓글
Today
Total
05-08 04:42
관리 메뉴

우노

[Airflow] DAG에서 Airflow REST API 호출하는 방법 본문

Data/Airflow

[Airflow] DAG에서 Airflow REST API 호출하는 방법

운호(Noah) 2023. 10. 16. 10:02

들어가기 앞서,

  • 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를 확인할 수 있습니다.

참고

Comments