Installér en privat pakke som et krav i Apache Airflow-job
Bemærk
Apache Airflow-jobbet drives af Apache Airflow.
En Python-pakke er en metode til at organisere relaterede Python-moduler i et enkelt mappehierarki. En pakke repræsenteres typisk som en mappe, der indeholder en særlig fil kaldet init.py. I en pakkemappe kan du have flere Python-modulfiler (.py filer), der definerer funktioner, klasser og variabler. I forbindelse med Apache Airflow Job kan du udvikle dine private pakker for at tilføje brugerdefinerede Apache Airflow-operatorer, kroge, sensorer, plugins osv.
I dette selvstudium skal du oprette en simpel brugerdefineret operator som en Python-pakke, tilføje den som et krav i Apache Airflow-jobmiljøet og importere den private pakke som et modul i DAG-filen.
Udvikl en brugerdefineret operatør, og test med en Apache Airflow Dag
Opret en fil
sample_operator.py
, og konvertér den til en privat pakke. Se vejledningen: Oprettelse af 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
Opret Filen
sample_dag.py
Apache Airflow DAG for at teste den operator, der er defineret i trin 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
Opret et GitHub-lager, der indeholder
sample_dag.py
mappen iDags
og din private pakkefil. Almindelige filformater omfatterzip
,.whl
ellertar.gz
. Placer filen enten i mappen 'Dags' eller 'Plugins' efter behov. Synkroniser dit Git-lager med Apache Airflow-job, eller du kan bruge forudkonfigureret lagerInstall-Private-Package
Tilføj din pakke som et krav
Tilføj pakken som et krav under Airflow requirements
. Brug formatet /opt/airflow/git/<repoName>.git/<pathToPrivatePackage>
Hvis din private pakke f.eks. er placeret i /dags/test/private.whl
et GitHub-lager, skal du føje kravet /opt/airflow/git/<repoName>.git/dags/test/private.whl
til Airflow-miljøet.