본문 바로가기
빅데이터/airflow

[airflow] 에어플로우 RestApi 설정

by hs_seo 2021. 10. 6.

에어플로우 기본 설정은 REST API 로 접속하면 거부하게 설정이 되어 있습니다.

 

airflow.cfg 설정의 REST API 접근 오류

# 명령어로 현재 설정 상태 확인 
$ airflow config get-value api auth_backend
airflow.api.auth.backend.deny_all

# airflow.cfg의 설정 확인
auth_backend = airflow.api.auth.backend.deny_all

# rest api 호출시 오류
$ curl http://0.0.0.0:8080/api/v1/dags/example/dagRuns
{
  "detail": null,
  "status": 401,
  "title": "Unauthorized",
  "type": "https://airflow.apache.org/docs/2.0.1/stable-rest-api-ref.html#section/Errors/Unauthenticated"
}

 

airflow.cfg 설정 변경

다음과 같이 설정을 변경하여 rest api 가 동작하는 것을 확인할 수 있습니다.

명령을 실행할 때 아이디와 암호를 함께 전달하는 것을 잊으면 안됩니다.

 

# airflow.cfg 설정 변경
auth_backend = airflow.api.auth.backend.basic_auth

# 동작 확인
# --user 로 접속 아이디와 암호를 전달해야 함 
 curl -X GET --user "admin:admin" http://0.0.0.0:8080/api/v1/dags/example/dagRuns
{
  "dag_runs": [
    {
      "conf": {},
      "dag_id": "example",
      "dag_run_id": "manual__2021-10-06T01:46:55+00:00",
      "end_date": "2021-10-06T01:46:57.489372+00:00",
      "execution_date": "2021-10-06T01:46:55+00:00",
      "external_trigger": true,
      "start_date": "2021-10-06T01:46:55.380066+00:00",
      "state": "success"
    },
    {
      "conf": {},
      "dag_id": "example",
      "dag_run_id": "manual__2021-10-06T03:57:48+00:00",
      "end_date": "2021-10-06T03:57:51.266804+00:00",
      "execution_date": "2021-10-06T03:57:48+00:00",
      "external_trigger": true,
      "start_date": "2021-10-06T03:57:48.205345+00:00",
      "state": "success"
    }
  ],
  "total_entries": 2
}
반응형