Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Hinweis
Apache Airflow-Arbeiten in Fabric werden durch Apache Airflow betrieben.
Derzeit werden private und virtuelle Netzwerke für Apache Airflow-Jobs nicht 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
Erstellen Sie eine Datei mit dem Namen
sample_operator.pyund wandeln Sie sie in ein privates Paket um. Wenn Sie Hilfe benötigen, lesen Sie dieses 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 messageErstellen 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") taskRichten Sie ein GitHub Repository mit Ihrer
sample_dag.pyDatei imdagsOrdner ein. Fügen Sie dann Ihre private Paketdatei inplugins. Sie können Formate wiezip,.whlodertar.gzverwenden. Verbinden Sie Ihr Git-Repository mit Ihrem Apache Airflow-Auftrag, 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.
Hinweis
Achten Sie darauf, den plugins Ordner und nicht den dags Ordner zum Hosten Ihrer eigenen Pakete zu verwenden.
Installieren einer privaten Bibliothek aus dem Ordner "plugins/libs"
Wenn Sie kein verbundenes Git-Repository verwenden, können Sie eine Raddatei direkt in den Ordner Ihres Apache Airflow-Auftrags plugins/libs hochladen und als Anforderung darauf verweisen. Für diesen Ansatz ist kein externes Repository erforderlich.
Laden Sie Ihre
.whlDatei in denplugins/libsOrdner im Dateispeicher Ihres Apache Airflow-Auftrags hoch.Fügen Sie die Raddatei als Voraussetzung hinzu, indem Sie das relative Pfadformat
/opt/airflow/plugins/libs/<your-wheel-file>.whlverwenden.Beispiel:
opt/airflow/plugins/libs/apache_airflow_providers_microsoft_fabric-0.1.0-py3-none-any.whlStarten Sie Ihren Apache Airflow-Auftrag neu, damit die Anforderung wirksam wird.