Freigeben über


Installieren eines Private Package als Anforderung im Apache Airflow-Auftrag

Hinweis

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

Mit einem Python-Paket können Sie verwandte Python-Module in einer einzelnen Verzeichnishierarchie 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. Mit Apache Airflow Jobs können Sie Eigene private Pakete entwickeln, um benutzerdefinierte Apache Airflow-Operatoren, Hooks, Sensoren, Plug-Ins und vieles mehr hinzuzufügen.

In diesem Lernprogramm erstellen Sie einen einfachen benutzerdefinierten Operator als Python-Paket, fügen es als Anforderung in Ihrem Apache Airflow-Auftrag hinzu und importieren Ihr privates Paket als Modul in Ihrer DAG-Datei.

Entwickeln eines benutzerdefinierten Operators und Testen mit einem Apache Airflow Dag

  1. Erstellen Sie eine Datei mit dem Namen sample_operator.py und wandeln Sie sie in ein privates Paket um. Wenn Sie Hilfe benötigen, lesen Sie dieses 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 als Nächstes eine Apache Airflow DAG-Datei mit dem Namen sample_dag.py, um den Operator zu testen, den Sie im ersten Schritt erstellt haben.

    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. Richten Sie ein GitHub-Repository ein, das Ihre sample_dag.py-Datei im Dags-Ordner sowie Ihre private Paketdatei enthält. Sie können Formate wie zip, .whl oder tar.gz verwenden. Legen Sie die Datei entweder in den Ordner "Dags" oder "Plugins" ein, je nachdem, was am besten passt. Verbinden Sie Ihr Git-Repository mit Ihrem Apache Airflow Job, oder probieren Sie das vorgefertigte Beispiel bei Install-Private-Package aus.

Hinzufügen Ihres Pakets als Anforderung

Fügen Sie das Paket unter Airflow requirements im Format /opt/airflow/git/<repoName>/<pathToPrivatePackage> hinzu

Wenn sich Ihr privates /dags/test/private.whl Paket beispielsweise in Ihrem GitHub-Repository befindet, fügen Sie einfach /opt/airflow/git/<repoName>/dags/test/private.whl Ihrer Airflow-Umgebung hinzu.

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

Schnellstart: Erstellen eines Apache Airflow-Auftrags