# Airflow Configuration File [core] # Airflow의 내부 스케줄링 및 시간 처리 기준 시간대 default_timezone = Asia/Seoul # DAG가 처음 생성될 때 "paused" 상태로 할지 여부 dags_are_paused_at_creation = True # 예제 DAG 로드 여부 load_examples = False # 실행기 유형 (docker-compose.yaml의 환경 변수 설정과 일치시키는 것이 좋음) # executor = CeleryExecutor # Fernet 키 (docker-compose.yaml의 환경 변수에서 관리하는 것이 일반적) # fernet_key = YOUR_FERNET_KEY [webserver] # Airflow 웹 UI에 표시되는 시간의 기준 시간대 default_ui_timezone = Asia/Seoul # API 인증 백엔드 (docker-compose.yaml의 환경 변수 설정과 일치시키는 것이 좋음) # auth_backends = airflow.api.auth.backend.basic_auth,airflow.api.auth.backend.session [logging] # 로그 메시지 형식 # %(asctime)s는 일반적으로 컨테이너의 TZ 환경 변수와 아래 default_date_format, timezone_aware 설정의 영향을 받습니다. log_format = [%(asctime)s] {%(filename)s:%(lineno)d} %(levelname)s - %(message)s # 로그의 %(asctime)s에 적용될 날짜/시간 형식 # %Z는 시간대 이름 (KST 등), %z는 UTC 오프셋 (+0900 등)을 표시합니다. default_date_format = %Y-%m-%d %H:%M:%S %Z%z # 시간대 인식 로깅 활성화 (기본값이 True이지만 명시적으로 설정) # 이 설정이 True이면, Airflow의 TimezoneAwareFormatter가 사용되어 # default_timezone (Asia/Seoul) 기준으로 시간을 표시하려고 시도합니다. timezone_aware = True # 로그 파일 이름 템플릿 (기본값 사용 권장) # default_log_filename_template = {{ ti.dag_id }}/{{ ti.task_id }}/{{ ts }}/{{ try_number }}.log # 원격 로깅을 사용하지 않는 경우, 태스크 로그는 파일로 저장됩니다. # task_log_reader = file.task # 로그 레벨 # logging_level = INFO # --- 기타 필요한 설정들 --- # 예: [database], [celery] 섹션의 설정들은 # docker-compose.yaml의 환경 변수(AIRFLOW__DATABASE__SQL_ALCHEMY_CONN 등)를 통해 # 이미 설정되어 있으므로, 여기서는 보통 명시적으로 다시 설정할 필요가 없습니다. # 만약 특정 설정을 airflow.cfg에서만 관리하고 싶다면 해당 섹션과 키를 추가할 수 있습니다. # [database] # sql_alchemy_conn = postgresql+psycopg2://airflow:airflow@postgres/airflow # [celery] # broker_url = redis://:@redis:6379/0 # result_backend = db+postgresql://airflow:airflow@postgres/airflow