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 vous permet 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. Avec Apache Airflow Jobs, vous pouvez développer vos propres 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 comme condition requise dans votre travail Apache Airflow et importer votre package privé en tant que module dans votre fichier DAG.

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

  1. Créez un fichier appelé sample_operator.py et transformez-le en package privé. Si vous avez besoin d’aide, consultez ce 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. Ensuite, créez un fichier DAG Apache Airflow appelé sample_dag.py pour tester l’opérateur que vous avez effectué à la première étape.

    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. Configurez un dépôt GitHub avec votre fichier sample_dag.py dans le dossier Dags, ainsi que votre fichier de package privé. Vous pouvez utiliser des formats tels que zip, .whlou tar.gz. Placez le fichier dans le dossier « Dags » ou « Plugins », selon ce qui convient le mieux. Connectez votre dépôt Git à votre travail Apache Airflow ou essayez l’exemple prêt à l’emploi dans Install-Private-Package.

Ajouter votre package privé en tant qu’exigence

Ajouter le package sous Airflow requirements en utilisant le format /opt/airflow/git/<repoName>/<pathToPrivatePackage>

Par exemple, si votre package privé se trouve /dags/test/private.whl dans votre dépôt GitHub, ajoutez simplement /opt/airflow/git/<repoName>/dags/test/private.whl à votre 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