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
Erstellen Sie eine Datei
sample_operator.py
, und konvertieren Sie sie in privates Paket. Weitere Informationen finden Sie im Handbuch: Erstellen eines Pakets 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
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
Erstellen Sie ein GitHub-Repository, das den
sample_dag.py
OrdnerDags
und Die private Paketdatei enthält. Zu gängigen Dateiformaten gehörenzip
,.whl
undtar.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.