Een privépakket installeren als vereiste in de Apache Airflow-taak
Notitie
Apache Airflow-taak wordt mogelijk gemaakt door Apache Airflow.
Een Python-pakket is een manier om gerelateerde Python-modules te organiseren in één maphiërarchie. Een pakket wordt meestal weergegeven als een map die een speciaal bestand bevat met de naam init.py. In een pakketmap kunt u meerdere Python-modulebestanden (.py-bestanden) hebben waarmee functies, klassen en variabelen worden gedefinieerd. In de context van Apache Airflow-taak kunt u privépakketten ontwikkelen om aangepaste Apache Airflow-operators, hooks, sensoren, invoegtoepassingen, enzovoort toe te voegen.
In deze zelfstudie maakt u een eenvoudige aangepaste operator als een Python-pakket, voegt u dit toe als vereiste in de Apache Airflow-taakomgeving en importeert u het privépakket als een module in het DAG-bestand.
Een aangepaste operator ontwikkelen en testen met een Apache Airflow Dag
Maak een bestand en converteer het naar een privépakket
sample_operator.py
. Raadpleeg de handleiding: Een pakket maken in 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
Maak het APACHE Airflow DAG-bestand
sample_dag.py
om de operator te testen die is gedefinieerd in stap 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
Maak een GitHub-opslagplaats met de
sample_dag.py
mapDags
en uw privépakketbestand. Veelgebruikte bestandsindelingen zijnzip
,.whl
oftar.gz
. Plaats het bestand in de map Dags of Plug-ins, indien van toepassing. Synchroniseer uw Git-opslagplaats met een Apache Airflow-taak of u kunt vooraf geconfigureerde opslagplaatsInstall-Private-Package gebruiken
Uw pakket toevoegen als vereiste
Voeg het pakket toe als een vereiste onder Airflow requirements
. De indeling gebruiken /opt/airflow/git/<repoName>.git/<pathToPrivatePackage>
Als uw privépakket zich bijvoorbeeld in /dags/test/private.whl
een GitHub-opslagplaats bevindt, voegt u de vereiste /opt/airflow/git/<repoName>.git/dags/test/private.whl
toe aan de Airflow-omgeving.