Freigeben über


Installieren eines Private Package als Anforderung im Apache Airflow-Auftrag

Hinweis

Ein Apache Airflow-Auftrag wird von Apache Airflow unterstützt.

Ein Python-Paket ist eine Möglichkeit, verwandte Python-Module in einer einzelnen Verzeichnishierarchie zu organisieren. Ein Paket wird in der Regel als Verzeichnis dargestellt, das eine spezielle Datei namens init.py enthält. Innerhalb eines Paketverzeichnisses können mehrere Python-Moduldateien (PY-Dateien), die Funktionen, Klassen und Variablen definieren, vorhanden sein. Im Kontext von Apache Airflow Job können Sie private Pakete entwickeln, um benutzerdefinierte Apache Airflow-Operatoren, Hooks, Sensoren, Plugins usw. hinzuzufügen.

In diesem Tutorial erstellen Sie einen einfachen benutzerdefinierten Operator als Python-Paket, fügen ihn als Anforderung in der Apache Airflow-Auftragsumgebung hinzu und importieren das private Paket als Modul in der DAG-Datei.

Entwickeln eines benutzerdefinierten Operators und Testen mit einem Apache Airflow Dag

  1. Erstellen Sie eine Datei sample_operator.py , und konvertieren Sie sie in privates Paket. Weitere Informationen finden Sie im Handbuch: Erstellen eines Pakets 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. Erstellen Sie eine Dag-Datei, sample_dag.py um den in Schritt 1 definierten Operator zu testen.

    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. Erstellen Sie ein GitHub-Repository, das den sample_dag.py Ordner Dags und Die private Paketdatei enthält. Zu gängigen Dateiformaten gehören zip, .whl und tar.gz. Platzieren Sie die Datei je nach Bedarf im Ordner „Dags“ oder „Plugins“. Synchronisieren Sie Ihr Git-Repository mit Apache Airflow Job, oder Sie können das vorkonfigurierte Repository Install-Private-Package verwenden.

Hinzufügen Ihres Pakets als Anforderung

Fügen Sie das Paket als Anforderung unter Airflow requirements. Verwenden Sie das Format: /opt/airflow/git/<repoName>.git/<pathToPrivatePackage>.

Wenn sich Ihr privates Paket beispielsweise in /dags/test/private.whl in einem GitHub-Repository befindet, sollten Sie die Anforderung /opt/airflow/git/<repoName>.git/dags/test/private.whl in der Workflow Orchestration Manager-Umgebung hinzufügen.

Screenshot mit dem privaten Paket, das als Anforderung hinzugefügt wurde.

Schnellstart: Erstellen eines Apache Airflow-Auftrags