Airflow의 configuration이 들어가있는 파일은 airflow.cfg입니다.
DAGs 폴더는 어디에 지정되는가?
Airflow는 dags 폴더를 주기적으로 스캔함 ⇒ 키 : dags_folder
## airflow.cfg
[core]
dags_folder = /var/lib/airflow/dags
DAGs 폴더에 새로운 Dag를 만들면 언제 실제로 Airflow 시스템에서 이를 알게 되나? 이 스캔 주기를 결정해주는 키의 이름이 무엇인가?
⇒ airflow.cfg
파일 내부의 dag_dir_list_interval
새 파일을 스캔하는 데 필요한 시간 (초)입니다. 기본값은 5분입니다.
dag_dir_list_interval = 300
스캔 시, DAG 모듈이 들어있는 모든 파일들의 메인 함수가 실행이 됨
이 경우 본의 아니게 개발 중인 테스트 코드도 실행될 수 있음
from airflow import DAG
…
cur.execute("DELETE FROM …."
이 파일에서 Airflow를 API 형태로 외부에서 조작하고 싶다면 어느 섹션을 변경해야하는가?
Airflow를 API 형태로 외부에서 조작하려면 api
섹션을 변경해야 합니다. airflow.cfg
파일에서 [api]
섹션을 찾아서 해당 섹션의 설정을 수정해야 합니다. 일반적으로 다음과 같이 변경해줍니다.
auth_backend = airflow.api.auth.backend.basic_auth
# basic_auth : id와 pw를 가지고 인증을 하는 방식
Variable에서 변수의 값이 encrypted가 되려면 변수의 이름에 어떤 단어들이 들어가야 하는데 이 단어들은 무엇일까? :)
이 환경 설정 파일이 수정되었다면 이를 실제로 반영하기 위해서 해야 하는 일은?
airflow.cfg
파일이 수정되었다면 변경 사항을 실제로 반영하기 위해 Airflow 웹 서버를 다시 시작해야 합니다. 변경된 설정을 적용하기 위해 Airflow 서비스를 재시작하거나, Docker 컨테이너에서 실행 중인 경우 컨테이너를 다시 시작해야 합니다.
a. sudo systemctl restart airflow-webserver
b. sudo systemctl restart airflow-scheduler
참고
Metadata DB의 내용을 암호화하는데 사용되는 키는 무엇인가?
Metadata DB의 내용을 암호화하는 데 사용되는 키는 **fernet_key
**라고 합니다. airflow.cfg
파일에서 [core]
섹션에서 fernet_key
값을 설정하면 됩니다. 이 키는 암호화된 데이터를 복호화하고 암호화하는 데 사용됩니다. 기본적으로는 랜덤한 문자열로 설정되어 있습니다.
fernet_key = your-fernet-key
실제 운영 환경에서는 안전한 방식으로 fernet_key를 생성하고 관리해야 합니다.
default_timezone
에 지정된 타임 존을 따름컨테이너 접속 후 찾기