Delen via


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

  1. Maak een bestand en converteer het naar een privépakket sample_operator.py . Raadpleeg de handleiding: Een pakket maken in 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. 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
    
  3. Maak een GitHub-opslagplaats met de sample_dag.py map Dags en uw privépakketbestand. Veelgebruikte bestandsindelingen zijn zip, .whlof tar.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.

Schermopname van het privépakket dat als vereiste is toegevoegd.

Quickstart: Een Apache Airflow-taak maken