Airflow 실행환경 관리방안
- 기타 환경설정 값들 (Variables, Connections 등등)을 어떻게 관리하고 배포하는가?
- 주로 docker-compose.yml(yaml) 파일의 아래 부분에 정의
(환경변수가 아니라 별도 credentials 전용 Secrets 백엔드라는 것을 사용하기도 함)
enviroment:
&airflow-common-env
AIRFLOW_VAR_DATA_DIR: /opt/airflow/data
AIRFLOW_CONN_TEST_ID: test_connection
- 주로 docker-compose.yml(yaml) 파일의 아래 부분에 정의
- Airflow 이미지를 통해 어디까지 관리하고 무엇을 docker-compose.yml에서 관리할지 생각
- 회사마다 조금씩 다름
- Airflow 자체 이미지를 만들고 거기에 넣을 경우 환경변수를 자체 이미지에 넣고 이를 docker-compose.yaml에서 사용
- 또는 docker-compose.yaml에서 환경변수를 직접 설정
x-airflow-common:
&airflow-common
image: ${AIRFLOW_IMAGE_NAME:-apache/airflow:2.5.1}
(환경변수가 정의되어 있으면 정의된 것을 사용하고 아닐경우, 기본값인 apache/airflow:2.5.1 사용)
- DAG 코드 또한 마찬가지
- Airflow image로 DAG 코드를 복사하여 만드는 것이 조금 더 깔끔
- 또는 docker-compose에서 host volume 형태로 설정 (개발/테스트용으로 더 적합)
- .airflowignore
- Airflow의 DAG 스캔 패턴
- dags_folder가 가리키는 폴더를 서브폴더들까지 다 스캔하여 DAG 모듈이 포함된 모든 파이썬 스크립트를 실행하여 해로운 DAG를 찾게 되지만 가끔 사고가 발생 - Airflow가 의도적으로 무시해야하는 DAG_FOLDER의 디렉터리 또는 파일을 지정
- .airflowignore의 각 줄은 정규식 패턴으로 지정하며 매칭되는 파일들은 무시됨
- Airflow의 DAG 스캔 패턴
SLACK 연동하기
- 슬랙 내의 별도의 WORKSPACE를 생성하여 에러 발생을 alert 할 수 있는 Channel을 생성
- https://api.slack.com/messaging/webhooks 방문
- Create New App -> From scratch -> app 이름 설정 -> Workspace 설정 -> Incoming Webhooks 선택
- Incoming Webhooks 화면에 들어오면 Incoming을 활성화 (off -> on)
- 페이지 하단의 Webhook URL에서 Add New Webhook to Workspace 를 선택하여 alert를 할 채널 지정
- cmd 창을 통한 test를 위해 아래의 명령어를 복사하여 cmd (터미널)에서 test 진행
※ 주의점! mac os의 경우 해당 명령어를 바로 입력해도 되지만, ms os의 경우 큰따옴표는 작은 따옴표로, 작은 따옴표는 큰 따옴표로 변경하여 입력!
curl -X POST -H "Content-type: application/json" --data "{'text' : 'Hello, World!'}" https://hooks.slack.com/services/....
728x90
'ssung_데이터 엔지니어링 > 11주차_Airflow 고급' 카테고리의 다른 글
Airflow 고급_(5) (0) | 2024.01.05 |
---|---|
Airflow_고급(4) (1) | 2024.01.04 |
Airflow 고급_(3) (0) | 2024.01.03 |