Instalar um pacote privado como um requisito no trabalho Apache Airflow
Nota
O trabalho do Apache Airflow é alimentado pelo Apache Airflow.
Um pacote python é uma maneira de organizar módulos Python relacionados em uma única hierarquia de diretórios. Um pacote é normalmente representado como um diretório que contém um arquivo especial chamado init.py. Dentro de um diretório de pacote, você pode ter vários arquivos de módulo Python (arquivos .py) que definem funções, classes e variáveis. No contexto do Apache Airflow Job, você pode desenvolver pacotes privados para adicionar operadores personalizados do Apache Airflow, ganchos, sensores, plugins, etc.
Neste tutorial, você criará um operador personalizado simples como um pacote Python, adicioná-lo-á como um requisito no ambiente de trabalho Apache Airflow e importará o pacote privado como um módulo dentro do arquivo DAG.
Desenvolva um operador personalizado e teste com um Apache Airflow Dag
Crie um arquivo
sample_operator.py
e converta-o em Private Package. Consulte o guia: Criando um pacote em 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
Crie o arquivo
sample_dag.py
Apache Airflow DAG para testar o operador definido na Etapa 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
Crie um repositório GitHub contendo a
sample_dag.py
pasta inDags
e seu arquivo de pacote privado. Os formatos de ficheiro comuns incluemzip
,.whl
outar.gz
. Coloque o arquivo na pasta 'Dags' ou 'Plugins', conforme apropriado. Sincronize seu repositório Git com o Apache Airflow Job ou você pode usar o repositóriopré-configurado Install-Private-Package
Adicione o seu pacote como um requisito
Adicione o pacote como um requisito em Airflow requirements
. Use o formato /opt/airflow/git/<repoName>.git/<pathToPrivatePackage>
Por exemplo, se o seu pacote privado estiver localizado em /dags/test/private.whl
um repositório GitHub, adicione o requisito /opt/airflow/git/<repoName>.git/dags/test/private.whl
ao ambiente Airflow.