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
Créez un fichier
sample_operator.py
et convertissez-le en package privé. Reportez-vous au guide : Création d’un package en pythonfrom 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
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
Créez un référentiel GitHub contenant le
sample_dag.py
dans le dossierDags
et votre fichier de package privé. Les formats de fichier courants sontzip
,.whl
outar.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.