Del via


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

  1. Opprett en fil sample_operator.py og konverter den til privat pakke. Se veiledningen: Opprette en pakke i python

    from 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
    
    
  2. 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
    
  3. Opprett et GitHub-repositorium som inneholder sample_dag.py mappen og Dags den private pakkefilen. Vanlige filformater inkluderer zip, .whleller tar.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.

Skjermbilde som viser privat pakke lagt til som krav.

Hurtigstart: Opprette en Apache Airflow-jobb