728x90 반응형 SMALL DAG7 [Apache Airflow] Slack 연동 Slack API slack API에서 어플리케이션을 생성한다. Create an app → From scratch을 선택한다. 앱 이름은 airflow_bot으로 입력하고, 봇을 띄우고자 하는 워크스페이스를 선택한다. 그 다음, Incoming Webhooks Off →On으로 변경한다. 그리고 페이지 하단의 Webhook URL에서 T로 시작하는 토큰값을 복사한다. 커넥션 등록 Slack의 경우 Airflow 설치시 기본 제공되는 Provider 중 하나로 Hook, Operator사용 가능하다. 커넥션에 Slack 관련 정보를 넣어주면 된다. 위에서 복사한 Webhook URL 토큰을 붙여 넣는다. callback plugins/collbacks 디렉토리에 on_failure_callbac.. 2024. 6. 19. [Apache Airflow] KaKao 연동 카카오 Developer 카카오 Developer에서 다음과 같이 애플리케이션을 추가한다. 카카오 연동 제품 설정에서 카카오 로그인의 활성화 설정 상태를 ON으로 변경한다. Redirect URI는 https://example.com/oauth로 입력한다. task에 대한 메시지를 전송하기 위해 동의 항목에서 선택 동의로 저장한다. 인가 코드 client_id는 앱 키 →REST API 키로 해서 아래 주소를 웹 브라우저를 통해 접속하여 인가 코드를 발급받는다. https://kauth.kakao.com/oauth/authorize?response_type=code&client_id={client_id}&redirect_uri=https://example.com/oauth&response_t.. 2024. 6. 19. [Apache Airflow] Connection & Hook 오퍼레이터 문제점 접속 정보 노출 : postgre DB에 대한 User, Password 등접속 정보 변경시 대응 어려움 : 직접 접속하는 DAG이 많은데 접속 정보가 수정되는 경우 해결 방법으로는 Variable (User, Password 등을 Variable에 등록하고 꺼내오기)이나 Hook을 이용한다 (Variable 등록 필요없음). Connection Airflow를 사용하면 사용자 정의 연결 유형을 정의할 수 있다. Airflow UI 화면에서 등록한 커넥션 정보를 말한다. Connection DB 등록 Admin Connection에서 postges_customDB 접속 정보를 등록한다. Connection을 등록하고 나면 Postgre Hook을 이용해 접속 가능하다. 그리고 Adm.. 2024. 6. 18. [Apache Airflow] Python 오퍼레이터 Python 오퍼레이터 파이썬 함수를 실행시킬수 있는 오퍼레이터이며, 가장 많이 사용되는 오퍼레이터 중 하나이다. dags 디렉토리를 기본적으로 sys.path에 추가해주고 있기 때문에 dags 디렉토리에 dag 파일을 가져다 놓기만 해도 airflow는 DAG 인식이 가능하다. 뿐만 아니라 config, plugins 디렉토리도 sys.path에 추가해 주고 있으므로 파이썬 공통 모듈이나 설정 파일은 plugins 디렉토리 또는 config 디렉토리 안에 만들어 놓으면 dag에서 import하여 사용 가능하다. dags_python_operator.py from airflow import DAGimport pendulumfrom airflow.operators.python import PythonOp.. 2024. 6. 17. [Apache Airflow] Email 오퍼레이터 Email 오퍼레이터 Airflow에서 기본 제공하는 오퍼레이터 중 하나이며, Email 전송할 수 있는 오퍼레이터이다. 기존 airflow 컨테이너를 종료한다. ubuntu~$cd airflowubuntu~$sudo docker compose down 구 컨테이너의 restart policy 변경 후 종료한다. ubuntu~$sudo docker update --restart=no $(sudo docker ps -a -q)ubuntu~$sudo docker stop $(sudo docker ps -a -q) 새 컨테이너를 시작한다. ubuntu~$sudo docker compose up 구글 계정 설정 Gmail 계정 내 설정하기에서 G-mail → 설정 → 모든 설정보기 → 전달 및 POP/IMAP .. 2024. 6. 17. [Apache Airflow] 개발 환경 구성 개발 환경 구성 DAG 개발시 서버에서 직접 개발하지 않으며, 일반적으로 git을 활용한 CI/CD 환경을 주로 이용한다. Airflow 서버가 별도로 존재한다고 가정할 때, 코드 개발은 로컬에서 개발 후 완성된 코드를 서버로 배포하는 식으로 진행한다. 다음 명령어로 파이썬 버전을 확인하고 로컬에서 동일한 버전을 설치한다. sudo docker exec -it {스케줄러 컨테이너ID} bashdefault@~: python-V 가상 환경 파이참에서는 프로젝트마다 가상 환경 생성이 가능하다. Git 구성 git 홈페이지에서 프로그램을 OS에 맞게 다운 받고, git 계정을 설정한다. git config --global --edit 그 다음, 코드를 올리기 위한 github Repository 만들고, 레.. 2024. 6. 14. Apache Airflow Apache Airflow Apache Airflow는 파이썬을 이용해 워크플로우를 만들고 관리할 수 있는 오픈소스 기반 워크플로우 관리 도구이다. 2014년, 에어비앤비에서 만든 워크플로우 관리 솔루션이다. 파이썬으로 제작된 도구이며, 이용자가 워크플로우 생성시에도 파이썬으로 구현하나의 워크플로우는 DAG (Directed Acyclic Graph)이라 부르며, DAG 안에는 1개 이상의 Task가 존재Task간 선후행 연결이 가능하되, 순환되지 않고 방향성을 가짐 (DAG)Cron 기반의 스케줄링모니터링 및 실패 작업에 대한 재실행 기능이 간편 워크플로우를 관리하는 여러 오픈소스 도구 중 가장 인기가 많다. UI로 워크플로우를 만들지 못해 어려우나, 파이썬 언어가 허락하는 한 거의 모든 유형의 파이.. 2024. 6. 14. 이전 1 다음 728x90 반응형 LIST