Instalowanie pakietu prywatnego jako wymagania w zadaniu apache Airflow
Uwaga
Zadanie apache Airflow jest obsługiwane przez platformę Apache Airflow.
Pakiet języka Python to sposób organizowania powiązanych modułów języka Python w jedną hierarchię katalogów. Pakiet jest zwykle reprezentowany jako katalog zawierający specjalny plik o nazwie init.py. Wewnątrz katalogu pakietów można mieć wiele plików modułów języka Python (.py plików), które definiują funkcje, klasy i zmienne. W kontekście zadania Platformy Apache Airflow możesz opracowywać prywatne pakiety, aby dodawać niestandardowe operatory, punkty zaczepienia, czujniki, wtyczki itp.
W tym samouczku utworzysz prosty operator niestandardowy jako pakiet języka Python, dodasz go jako wymaganie w środowisku zadań Apache Airflow i zaimportujesz pakiet prywatny jako moduł w pliku DAG.
Opracowywanie operatora niestandardowego i testowanie za pomocą narzędzia Apache Airflow Dag
Utwórz plik
sample_operator.py
i przekonwertuj go na pakiet prywatny. Zapoznaj się z przewodnikiem: Tworzenie pakietu w języku Pythonfrom 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
Utwórz plik
sample_dag.py
DAG platformy Apache Airflow, aby przetestować operator zdefiniowany w kroku 1.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
Utwórz repozytorium GitHub zawierające
sample_dag.py
folder wDags
folderze i plik pakietu prywatnego. Typowe formaty plików obejmujązip
,.whl
lubtar.gz
. Umieść plik w folderze "Dags" lub "Plugins", odpowiednio. Zsynchronizuj repozytorium Git z zadaniem apache Airflow lub możesz użyć wstępnie skonfigurowanego repozytoriumInstall-Private-Package
Dodaj pakiet jako wymaganie
Dodaj pakiet jako wymaganie w obszarze Airflow requirements
. Użyj formatu /opt/airflow/git/<repoName>.git/<pathToPrivatePackage>
Jeśli na przykład pakiet prywatny znajduje się /dags/test/private.whl
w repozytorium GitHub, dodaj wymaganie /opt/airflow/git/<repoName>.git/dags/test/private.whl
do środowiska Airflow.