Airflow는 환경설정을 통해서, 웹 api를 외부에서 활용할 수 있습니다.
Airflow API 활성화
- airflow.cfg의 api 섹션에서 auth_backend의 값을 변경합니다.
- auth_backend = airflow.api.auth.backend.basic_auth
- airflow 웹서버를 재실행합니다.
- sudo systemctl restart airflow-webserver
- basic_auth 설정 재확인
- sudo su airflow
- airflow config get-value api auth_backends
- Airflow Web UI 에서 새로운 사용자 추가
- Security -> List Users -> +
- 이후 화면에서 새 사용자 정보를 추가 합니다(monitor:MonitorUser1)
- Health API 호출
- curl -X GET --user "monitor:MonitorUser1" http://[AirflowServer]:8080/health
- API를 통해서 할 수 있는 작업은 다양합니다.
- 특정 DAG를 API로 Trigger하기
- 모든 DAG 리스트하기
- 모든 Variable 리스트하기
아래는 파이썬으로 API를 가져오는 예제입니다.
import requests
import json
# health_api
server = "API 서버 주소"
username = "유저 네임"
password = "유저 비밀번호"
url = f"http://{server}:8080/health"
result = requests.get(url, auth=(username, password)).json()
print(json.dumps(result, indent=4))
# dags list api
username = "유저 네임"
password = "유저 비밀번호"
url = f"http://{server}:8080/api/v1/dags"
result = requests.get(url, auth=(username, password)).json()
print(json.dumps(result, indent=4))
더 많은 내용은 AIRFLOW의 공식문서를 참고하시면 됩니다!
'데이터 엔지니어링 > 실리콘밸리에서 날아온 데이터엔지니어링 스타터 키트' 카테고리의 다른 글
[7주차] SPARK 기본 개념 및 PANDAS와의 비교 (1) | 2023.05.12 |
---|---|
[6주차] Dag Dependencies(Explicit Trigger, Reactive trigger, BranchPythonOperator) (1) | 2023.05.07 |
[6주차] AIRFLOW SLACK 연동(파이프라인 에러메시지 받기) (0) | 2023.05.07 |
[6주차] AIRFLOW 주요 고려사항 정리 (0) | 2023.05.07 |
[6주차] DOCKER & K8S & DBT (0) | 2023.05.07 |