Installer en privat pakke som et krav i Apache Airflow-jobben
Merk
Apache Airflow-jobben drives av Apache Airflow.
En python-pakke er en måte å organisere relaterte Python-moduler på i ett enkelt kataloghierarki. En pakke representeres vanligvis som en katalog som inneholder en spesiell fil kalt init.py. I en pakkekatalog kan du ha flere Python-modulfiler (.py filer) som definerer funksjoner, klasser og variabler. I sammenheng med Apache Airflow Job kan du utvikle private pakker for å legge til egendefinerte Apache Airflow-operatører, kroker, sensorer, plugin-moduler osv.
I denne opplæringen skal du opprette en enkel egendefinert operator som en Python-pakke, legge den til som et krav i jobbmiljøet Apache Airflow og importere den private pakken som en modul i DAG-filen.
Utvikle en egendefinert operatør og test med en Apache Airflow Dag
Opprett en fil
sample_operator.py
og konverter den til privat pakke. Se veiledningen: Opprette en pakke 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
Opprett Apache Airflow DAG-filen
sample_dag.py
for å teste operatoren som er definert i trinn 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
Opprett et GitHub-repositorium som inneholder
sample_dag.py
mappen ogDags
den private pakkefilen. Vanlige filformater inkludererzip
,.whl
ellertar.gz
. Plasser filen enten i Mappen Dags eller Plugins etter behov. Synkroniser Git-repositoriet med Apache Airflow Job, eller du kan bruke forhåndskonfigurert repositoriumInstall-Private-Package
Legg til pakken som et krav
Legg til pakken som et krav under Airflow requirements
. Bruke formatet /opt/airflow/git/<repoName>.git/<pathToPrivatePackage>
Hvis for eksempel den private pakken er plassert i /dags/test/private.whl
en GitHub-repositorium, legger du til kravet /opt/airflow/git/<repoName>.git/dags/test/private.whl
i Airflow-miljøet.