728x90 반응형 SMALL App Programming255 [MLops] Docker에서 MLops 네트워크 구성 네트워크 할당 커스텀 네트워크에 도커 컨테이너를 할당하기 위해 호스트와 컨테이너 네트워크를 구성한다. docker network create --gateway 172.20.0.1 --subnet 172.20.0.0/24 mlops python 컨테이너 docker run -itd --name my-mlops --network mlops python:3.11-buster docker ps로 컨테이너가 올라갔는지 확인한다. bash 그 다음, bash로 접근하여 패키지 관리자 최신화를 위해 apt 업데이트한다. apt install -y vim wgetcat /etc/os-release 2024. 8. 9. [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. [Docker] Package 'docker-ce' has no installation candidate Package 'docker-ce' has no installation candidate 우분투 환경에서 docker 커맨드를 찾지 못하는 경우에 다음 명령어를 실행한다. $ sudo apt-get update$ sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"$ apt-get u.. 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] Postgre DB 추가 Postgre 인스턴스 추가 로컬에서 docker-compose.yaml 파일을 다음과 같이 수정한다. services: postgres_custom: image: postgres:13 environment: POSTGRES_USER: 이름 POSTGRES_PASSWORD: 비밀번호 POSGRES_DB: 데이터베이스 TZ: Asia/Seoul volumes: - postgres-custom-db-volume:/var/lib/postgresql/data ports: - 5432:5432 # 외부에서 접속할 수 있도록 포트 노출volumes: postgres-db-volume: postgres-custom-db-volume: #.. 2024. 6. 18. [Apache Airflow] Custom 오퍼레이터 Custom 오퍼레이터 앞서, SimpleHttp는 기본적으로 1회 호출만 가능하다. 그리고 openAPI를 통해 얻은 데이터셋은 몇 개의 row가 존재할 지 미리 알기 어렵다. 하나의 task로 모든 row를 추출하면서 전처리하여 파일로 저장할 수 있는 기능을 가능케 하는 것은 커스텀 오퍼레이터이다. Airflow는 필요한 오퍼레이터를 직접 만들어 사용할 수 있도록 확장성을 지원한다. BaseOperator를 상속하며 원하는 기능은 파이썬으로 직접 구현 가능하다. 다음과 같이, BaseOperator 상속시 두 가지 메서드를 재정의해야 한다 (Overriding). def__init__ : 클래스에서 객체 생성시 객체에 대한 초기값 지정하는 함수def execute(self, context) : 실제 .. 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] Cron Schedule Cron Schedule Cron Schedule은 다음과 같이 task가 실행되어야 하는 시간 (주기)을 정하기 위한 다섯개의 필드로 구성된 문자열이다. {분} {시} {일} {월} {요일} Airflow의 모든 DAG는 실행 주기를 결정해야 하며, 일반적으로 Cron Schedule을 활용하여 DAG이 실행되어야 할 주기를 명시한다. 특수 문자 특수 문자설명*모든 값-범위 지정,여러 값 지정/증가값 지정L마지막 값 (일, 요일에만 설정 가능)※ 일에 L입력시 해당 월의 마지막 일 의미※ 요일에 L 입력시 토요일 의미#몇 번째 요일인지 지정 Cron Schedule설명비고15 2 * * *매일 02시 15분 0 * * * *매시 정각 0 0 1 * *매월 1일 0시 0분 10 1 * * 1매주 월요일 .. 2024. 6. 17. 이전 1 2 3 4 5 ··· 26 다음 728x90 반응형 LIST