다음을 통해 공유


Apache Airflow 작업의 요구 사항으로 프라이빗 패키지 설치

참고 항목

Apache Airflow 작업은 Apache Airflow에서 구동됩니다.

Python 패키지를 사용하면 관련 Python 모듈을 단일 디렉터리 계층 구조로 구성할 수 있습니다. 패키지는 일반적으로 init.py라는 특수 파일을 포함하는 디렉터리로 표시됩니다. 패키지 디렉터리 내에는 함수, 클래스 및 변수를 정의하는 여러 Python 모듈 파일(.py 파일)이 있을 수 있습니다. Apache Airflow 작업을 사용하면 사용자 지정 Apache Airflow 연산자, 후크, 센서, 플러그 인 등을 추가하는 고유한 프라이빗 패키지를 개발할 수 있습니다.

이 자습서에서는 간단한 사용자 지정 연산자를 Python 패키지로 빌드하고, Apache Airflow 작업에 요구 사항으로 추가하고, 프라이빗 패키지를 DAG 파일의 모듈로 가져옵니다.

Apache Airflow Dag를 사용하여 사용자 지정 연산자 개발 및 테스트

  1. sample_operator.py 파일을 생성하여 프라이빗 패키지로 변경합니다. 도움이 필요한 경우 다음 가이드를 확인 하세요. python에서 패키지 만들기

    from airflow.models.baseoperator import BaseOperator
    
    
    class SampleOperator(BaseOperator):
        def __init__(self, name: str, **kwargs) -> None:
            super().__init__(**kwargs)
            self.name = name
    
        def execute(self, context):
            message = f"Hello {self.name}"
            return message
    
    
  2. 다음으로, 첫 번째 단계에서 만든 연산자를 테스트하기 위해 호출된 sample_dag.py Apache Airflow DAG 파일을 만듭니다.

    from datetime import datetime
    from airflow import DAG
    
     # Import from private package
    from airflow_operator.sample_operator import SampleOperator
    
    
    with DAG(
    "test-custom-package",
    tags=["example"]
    description="A simple tutorial DAG",
    schedule_interval=None,
    start_date=datetime(2021, 1, 1),
    ) as dag:
        task = SampleOperator(task_id="sample-task", name="foo_bar")
    
        task
    
  3. 개인 패키지 파일과 함께, sample_dag.py 파일을 Dags 폴더에 넣어 GitHub 리포지토리를 설정합니다. 또는 .whltar.gz.와 같은 zip형식을 사용할 수 있습니다. 가장 적합한 'Dags' 또는 '플러그 인' 폴더에 파일을 넣습니다. Git 리포지토리를 Apache Airflow 작업에 연결하거나 Install-Private-Package에서 즉시 사용할 수 있는 예제를 사용해 보세요.

요구 사항으로 패키지를 추가합니다.

Airflow requirements 아래에 패키지를 /opt/airflow/git/<repoName>/<pathToPrivatePackage> 형식으로 추가하십시오.

예를 들어 개인 패키지가 /dags/test/private.whl GitHub 리포지토리에 있는 경우 Airflow 환경에 추가 /opt/airflow/git/<repoName>/dags/test/private.whl 하기만 하면 됩니다.

요구 사항으로 추가된 프라이빗 패키지를 보여 주는 스크린샷

빠른 시작: Apache Airflow 작업 만들기