Instalar um pacote privado como um requisito no trabalho do Apache Airflow
Observação
O trabalho do Apache Airflow é da plataforma Apache Airflow.
Um pacote Python é uma maneira de organizar módulos do Python relacionados em uma única hierarquia de diretório. Um pacote normalmente é representado como um diretório que contém um arquivo especial chamado init.py. Em 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 trabalho do Apache Airflow, você pode desenvolver pacotes privados para adicionar operadores personalizados do Apache Airflow, ganchos, sensores, plug-ins etc.
Neste tutorial, você criará um operador personalizado simples como um pacote do Python, adicionará-o como um requisito no ambiente de trabalho do Apache Airflow e importará o pacote privado como um módulo dentro do arquivo DAG.
Desenvolver um operador personalizado e testar com um Dag do Apache Airflow
Crie um arquivo
sample_operator.py
e converta-o em Pacote Privado. Consulte o guia: Criar um pacote no 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 um arquivo DAG do Apache Airflow
sample_dag.py
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 do GitHub contendo
sample_dag.py
na pastaDags
e seu arquivo de pacote privado. Os formatos de arquivo comuns incluemzip
,.whl
outar.gz
. Coloque o arquivo na pasta 'Dags' ou 'Plug-ins', conforme apropriado. Sincronize o seu repositório do Git com o trabalho do Apache Airflow, ou você pode usar o repositório pré-configurado Install-Private-Package
Adicionar seu pacote como 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 está localizado em /dags/test/private.whl
em um repositório do GitHub, adicione a exigência /opt/airflow/git/<repoName>.git/dags/test/private.whl
no ambiente do Airflow.