Partager via


Installer un package privé comme requis dans la tâche Apache Airflow

Remarque

Apache Airflow Job est alimenté par Apache Airflow.

Un package Python est un moyen d’organiser les modules Python associés en une seule hiérarchie de répertoires. Un package est généralement représenté sous la forme d’un annuaire qui contient un fichier spécial appelé init.py. Dans un répertoire de package, vous pouvez avoir plusieurs fichiers de module Python (fichiers.py) qui définissent des fonctions, des classes et des variables. Dans le contexte d’Apache Airflow Job, vous pouvez développer des packages privés pour ajouter des opérateurs Apache Airflow personnalisés, des hooks, des capteurs, des plug-ins, etc.

Dans ce tutoriel, vous allez créer un opérateur personnalisé simple en tant que package Python, l’ajouter en tant qu’exigence dans l’environnement de travail Apache Airflow et importer le package privé en tant que module dans le fichier DAG.

Développer un opérateur personnalisé et tester avec un Dag Apache Airflow

  1. Créez un fichier sample_operator.py et convertissez-le en package privé. Reportez-vous au guide : Création d’un package 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. Créez le fichier DAG Apache Airflow sample_dag.py pour tester l'opérateur défini à l'étape 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. Créez un référentiel GitHub contenant le sample_dag.py dans le dossier Dags et votre fichier de package privé. Les formats de fichier courants sont zip, .whl ou tar.gz. Placez le fichier dans le dossier « Dags » ou « Plugins », selon le cas. Synchronisez votre référentiel Git avec la tâche Apache Airflow ou vous pouvez utiliser le référentiel préconfiguré Install-Private-Package

Ajouter votre package privé en tant qu’exigence

Ajoutez le package en tant qu’exigence sous Airflow requirements. Utilisez le format /opt/airflow/git/<repoName>.git/<pathToPrivatePackage>

Par exemple, si votre package privé est situé à /dags/test/private.whl dans un référentiel GitHub, ajoutez l’exigence /opt/airflow/git/<repoName>.git/dags/test/private.whl à l’environnement Airflow.

Capture d’écran montrant le package privé ajouté en tant qu’exigence.

Démarrage rapide : créer une tâche Apache Airflow Job