Compartir a través de


Instalación de un paquete privado como requisito en el trabajo de Apache Airflow

Nota:

El trabajo de Apache Airflow funciona con Apache Airflow.

Un paquete de Python le permite organizar módulos de Python relacionados en una sola jerarquía de directorios. Normalmente, un paquete se representa como un directorio que contiene un archivo especial denominado init.py. Dentro de un directorio de paquetes, se pueden tener varios archivos de módulos de Python (archivos.py) que definen funciones, clases y variables. Con los trabajos de Apache Airflow, puede desarrollar sus propios paquetes privados para agregar operadores, hooks, sensores, complementos personalizados y mucho más.

En este tutorial, creará un operador personalizado sencillo como paquete de Python, lo agregará como requisito en el trabajo de Apache Airflow e importará el paquete privado como módulo en el archivo DAG.

Desarrollo de un operador personalizado y prueba con un dag de Apache Airflow

  1. Cree un archivo llamado sample_operator.py y créelo en un paquete privado. Si necesita ayuda, consulte esta guía: Creación de un paquete en 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. A continuación, cree un archivo DAG de Apache Airflow llamado sample_dag.py para probar el operador que realizó en el primer paso.

    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. Configura un repositorio de GitHub con el archivo sample_dag.py en la carpeta Dags, junto con el archivo de paquete privado. Puede usar formatos como zip, .whlo tar.gz. Coloque el archivo en la carpeta "Dags" o "Plugins", lo que mejor se adapte. Conecte el repositorio de Git al trabajo de Apache Airflow o pruebe el ejemplo listo en Install-Private-Package.

Agregar el paquete privado como requisito

Agregue el paquete bajo Airflow requirements usando el formato /opt/airflow/git/<repoName>/<pathToPrivatePackage>.

Por ejemplo, si el paquete privado se encuentra /dags/test/private.whl en el repositorio de GitHub, solo tiene que agregarlo /opt/airflow/git/<repoName>/dags/test/private.whl al entorno de Airflow.

Captura de pantalla que muestra el paquete privado agregado como requisito.

Inicio rápido: creación de un trabajo de Apache Airflow