Partilhar via


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

  1. Crie um arquivo sample_operator.py e converta-o em Private Package. Consulte o guia: Criando um pacote em 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 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
    
  3. Crie um repositório GitHub contendo a sample_dag.py pasta in Dags e seu arquivo de pacote privado. Os formatos de ficheiro comuns incluem zip, .whlou tar.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.

Captura de tela mostrando o pacote privado adicionado como requisito.

Guia de início rápido: criar um trabalho do Apache Airflow