Compartilhar via


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

  1. Crie um arquivo sample_operator.py e converta-o em Pacote Privado. Consulte o guia: Criar um pacote no 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. 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
    
  3. Crie um repositório do GitHub contendo sample_dag.py na pasta Dags e seu arquivo de pacote privado. Os formatos de arquivo comuns incluem zip, .whlou tar.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.

Captura de tela mostrando o pacote privado adicionado como requisito.

Início Rápido: criar um trabalho do Apache Airflow