Del via


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

  1. Opret en fil sample_operator.py , og konvertér den til en privat pakke. Se vejledningen: Oprettelse af 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. 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
    
  3. Opret et GitHub-lager, der indeholder sample_dag.py mappen i Dags og din private pakkefil. Almindelige filformater omfatter zip, .whleller tar.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.

Skærmbillede, der viser den private pakke, der er tilføjet som krav.

Hurtig start: Opret et Apache Airflow-job