Installera ett privat paket som ett krav i Apache Airflow-jobbet
Kommentar
Apache Airflow-jobbet drivs av Apache Airflow.
Ett Python-paket är ett sätt att organisera relaterade Python-moduler i en enda kataloghierarki. Ett paket representeras vanligtvis som en katalog som innehåller en särskild fil med namnet init.py. I en paketkatalog kan du ha flera Python-modulfiler (.py filer) som definierar funktioner, klasser och variabler. I samband med Apache Airflow Job kan du utveckla privata paket för att lägga till anpassade Apache Airflow-operatorer, krokar, sensorer, plugin-program osv.
I den här självstudien skapar du en enkel anpassad operator som ett Python-paket, lägger till det som ett krav i Apache Airflow-jobbmiljön och importerar det privata paketet som en modul i DAG-filen.
Utveckla en anpassad operatör och ett test med en Apache Airflow Dag
Skapa en fil
sample_operator.py
och konvertera den till Privat paket. Läs guiden: Skapa ett paket i 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
Skapa Apache Airflow DAG-filen
sample_dag.py
för att testa operatorn som definierats i steg 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
Skapa en GitHub-lagringsplats som innehåller
sample_dag.py
mappen iDags
och din privata paketfil. Vanliga filformat ärzip
,.whl
ellertar.gz
. Placera filen i mappen Dags eller Plugins efter behov. Synkronisera din Git-lagringsplats med Apache Airflow-jobbet eller så kan du använda förkonfigurerad lagringsplatsInstall-Private-Package
Lägg till ditt paket som ett krav
Lägg till paketet som ett krav under Airflow requirements
. Använd formatet /opt/airflow/git/<repoName>.git/<pathToPrivatePackage>
Om ditt privata paket till exempel finns på /dags/test/private.whl
en GitHub-lagringsplats lägger du till kravet /opt/airflow/git/<repoName>.git/dags/test/private.whl
i Airflow-miljön.