Dela via


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

  1. Skapa en fil sample_operator.py och konvertera den till Privat paket. Läs guiden: Skapa ett paket 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. 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
    
  3. Skapa en GitHub-lagringsplats som innehåller sample_dag.py mappen i Dags och din privata paketfil. Vanliga filformat är zip, .whleller tar.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.

Skärmbild som visar det privata paketet som lagts till som krav.

Snabbstart: Skapa ett Apache Airflow-jobb