Yksityisen paketin asentaminen vaatimuksena Apache Airflow -työssä
Python-paketin avulla toisiinsa liittyvät Python-moduulit voi järjestää yhden hakemiston hierarkiaan. Paketti esitetään yleensä hakemistona, joka sisältää init.py-nimisen erikoistiedoston. Pakettihakemistossa voi olla useita Python-moduulitiedostoja (.py tiedostoja), jotka määrittävät funktioita, luokkia ja muuttujia. Apache Airflow Jobin yhteydessä voit kehittää yksityisiä paketteja ja lisätä mukautettuja Apache Airflow -operaattoreita, koukkuja, tunnistimia, laajennuksia jne.
Tässä opetusohjelmassa luot yksinkertaisen mukautetun operaattorin Python-pakettina, lisäät sen vaatimuksena Apache Airflow -työympäristöön ja tuot yksityisen paketin moduulina DAG-tiedostoon.
Kehitä mukautettu operaattori ja testaa Apache Airflow -dagilla
Luo tiedosto
sample_operator.py
ja muunna se yksityiseksi paketiksi. Katso opas: Paketin luominen Pythonissafrom 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
Luo DAG-tiedosto
sample_dag.py
Apache Airflow, jotta voit testata vaiheessa 1 määritettyä operaattoria.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
Luo GitHub-säilö, joka sisältää -kansion
sample_dag.py
Dags
ja yksityisen pakettitiedoston. Yleisiä tiedostomuotoja ovat esimerkiksizip
,.whl
taitar.gz
. Sijoita tiedosto joko Dags- tai Plugins-kansioon. Synkronoi Git-säilösi Apache Airflow Jobin kanssa tai voit käyttää esimääritettyä säilöäInstall-Private-Package
Paketin lisääminen vaatimuksena
Lisää paketti vaatimuksena kohtaan Airflow requirements
. Käytä muotoa /opt/airflow/git/<repoName>.git/<pathToPrivatePackage>
Jos esimerkiksi yksityinen paketti sijaitsee /dags/test/private.whl
GitHub-säilössä, lisää vaatimus /opt/airflow/git/<repoName>.git/dags/test/private.whl
Airflow-ympäristöön.