Installér en privat pakke som et krav i Apache Airflow-job

Bemærk

Apache Airflow-jobbet drives af Apache Airflow.

I øjeblikket understøttes private netværk og virtuelle netværk ikke med Fabric Apache Airflow-jobs.

Med en Python-pakke kan du 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. Med Apache Airflow Jobs kan du udvikle dine egne private pakker for at tilføje brugerdefinerede Apache Airflow-operatorer, kroge, sensorer, plugins og meget mere.

I dette selvstudium skal du oprette en simpel brugerdefineret operator som en Python-pakke, tilføje den som et krav i dit Apache Airflow-job og importere din private pakke som et modul i din DAG-fil.

Udvikl en brugerdefineret operatør, og test med en Apache Airflow Dag

  1. Opret en fil, der kaldes sample_operator.py , og gør den til en privat pakke. Hvis du har brug for hjælp, kan du se denne vejledning: 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 derefter en Apache Airflow DAG-fil, der kaldes sample_dag.py for at teste den operator, du foretog i det første trin.

    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. Konfigurer et GitHub-lager med din sample_dag.py fil i Dags mappen sammen med din private pakkefil. Du kan bruge formater som zip, .whleller tar.gz. Placer filen enten i mappen 'Dags' eller 'Plugins', alt efter hvad der passer bedst. Forbind dit Git-lager til dit Apache Airflow-job, eller prøv det færdige eksempel på Install-Private-Package.

Tilføj din pakke som et krav

Tilføj pakken under Airflow requirements ved hjælp af formatet /opt/airflow/git/<repoName>/<pathToPrivatePackage>

Hvis din private pakke f.eks. er placeret i /dags/test/private.whl dit GitHub-lager, skal du blot føje /opt/airflow/git/<repoName>/dags/test/private.whl til dit Airflow-miljø.

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

Installer et privat bibliotek fra mappen med dags/libs

Hvis du ikke bruger et tilsluttet Git-repository, kan du uploade en wheel-fil direkte til mappen for dags/libs dit Apache Airflow-job og referere til den som et krav. Denne tilgang kræver ikke et eksternt repository.

  1. Upload din .whl fil til dags/libs mappen i dit Apache Airflow-jobs fillager.

  2. Tilføj hjulfilen som et krav ved hjælp af det relative sti-format dags/libs/<your-wheel-file>.whl.

    Eksempel:

    dags/libs/apache_airflow_providers_microsoft_fabric-0.1.0-py3-none-any.whl
    
  3. Genstart dit Apache Airflow-projekt, indtil det træder i kraft.

Hurtig start: Opret et Apache Airflow-job