Developers Haven

(DH)블로그는 개발자들이 기술 정보를 찾아볼 수 있는 안식처가 되고 싶음을 희망하여 시작하게 되었습니다. 공부한 내용과 성장 과정을 기록해두었으니 편히 둘러보시길 바랍니다.

Welcome to DH's Blog

[기술공부]/Apache Airflow

[Airflow] Connection 연결시 [Test] 버튼 비활성화된 경우 해결하는 방법

DH’s Blog 2024. 2. 4. 22:36
반응형

 

 

Airflow에서 Connection 연결하기 전, Connection 연결 정보가 올바르게 입력되었는지 확인하기 위해서 [Test] 버튼을 눌러 확인하고 이상이 없으면 [Save] 버튼을 눌러 커넥션을 저장하게 된다. 하지만 상황에 따라 아래와 같이 [Test] 버튼이 비활성화될 수 있는데, 이 문제를 해결하는 방법을 알아보도록하자.

 

 

여담으로 나도 처음에는 버튼이 비활성화되어 있어서, MySQL DB 연결시 커넥션 정보가 올바른지에 대해 확인이 어려웠다. 인터넷을 찾아보던 중 Airflow 내의 설정값 수정을 통해 해결할 수 있다는 것을 알아낼 수 있었다.

 

[Test] 비활성화된 상황

 

 

먼저, 해결 방법을 간단히 설명하자면

Airflow webserver 컨테이너 내에서의 airflow.cfg이란 설정 파일 내의 'test_connection = Disabled ' 값을 'test_connection = Enabled '로 수정해서 해결할 수 있으며, 한단계씩 설명해보도록 하겠다.

 

 


1. Airflow-webserver 컨테이너 접근 후 패키지 업데이트 하기

: container 내부를 root 권한으로 접속하여 vim을 사용하기 위해 패키지 업데이트를 진행한다.

# airflow webserver container명 확인
sudo docker ps

# airflow webserver container bash 접근
# -u root : container 내부에서의 사용자를 'root'로 지정
# sudo docker exec -it -u root ${airflow-webserver-container명} bash 
sudo docker exec -it -u root dhkim-airflow-webserver-1 bash

apt update
apt install vim

webserver 컨테이너 접근

 

 

 

 

 

2. Airflow-webserver 컨테이너 내부에서 airflow.cfg 파일을 vim 편집기로 수정하기

: airflow.cfg 파일에서 test_connection 설정값을 Disabled → Enabled로 수정한다.

# airflow webserver container에서 airflow.cfg 파일 vim으로 열기
ls -al
vim airflow.cfg


# ------------------- airflow.cfg vim 편집 ------------------- #
# 수정할 내용: test_connection = Disabled --> Enabled로 수정
# 편집방법: [i]눌러서 수정모드 --> Enabled로 수정 --> [Esc]로 수정모드 종료 --> [:wq!] 입력 후 Enter로 저장하고 빠져나오기

...
test_connection = Enabled
...

# ------------------- airflow.cfg vim 편집 ------------------- #

airflow.cfg 파일 편집 전(왼쪽), 후(오른쪽)

 

 

 

※ airflow.cfg 내부에서 test_connection 위치를 찾는 방법 2가지

(1) vim 편집기를 열고 :set number 입력 후 [Enter]하면 행 번호 확인 → 407번 row에서 확인 가능 (참고로, airflow 버전에 따라 row 행번호가 조금 다를 수 있다)

 

 

(2) vim 편집기를 열고 /test_connection 입력 후 [Enter]하면 해당 텍스트로 바로 접근 가능

 

 

 

 

 

 

3. Airflow-webserver 컨테이너에서 빠져나와서 컨테이너 재시작

: webserver 컨테이너를 재시작하면 Connection [Test] 버튼이 활성화된 것을 확인할 수 있다.

# container에서 나오기
exit

# container 재시작
# sudo docker restart ${airflow-webserver-container명}
sudo docker restart dhkim-airflow-webserver-1

 

 

 

 

 

 


 

위의 과정을 통해 Airflow 웹페이지에서의 Connection 진행시 [Test] 버튼이 비활성화된 것을 해결할 수 있었다. 처음에는 내 컴퓨터의 오류인가?라고 생각했었는데 알고보니 Airflow-webserver 컨테이너 내부 설정값이 원인이었다. 나와 같은 문제를 접한 사람들에게 이 글이 많은 도움이 되었으면 좋겠다:)

 

 

 

 

 

반응형