Hava akışı: Ayrı bir dosyadan DAG oluşturma

0

Soru

Hava akışında, bir dosyada DAG oluşturmak için ayrılmış bir işlev yapmaya çalışıyorum:

dynamic_dags.py:

def generate_dag(name):
    with DAG(
        dag_id=f'dag_{name}',
        default_args=args,
        start_date=days_ago(2),
        schedule_interval='5 5 * * *',
        tags=['Test'],
        catchup=False
    ) as dag:
        dummy_task=DummyOperator(
            task_id="dynamic_dummy_task",
            dag=dag
        )
    return dag

Sonra başka bir dosyada dag'leri ayrı bir dosyadan içe aktarmaya çalışıyorum:

load_dags.py:

from dynamic_dag import generate_dag
globals()["Dynamic_DAG_A"] = generate_dag('A')

Ancak, dag'ler web kullanıcı Arayüzünde gösterilmez. Ancak bunları aşağıdaki kod gibi tek bir dosyada yaparsam işe yarar:

def generate_dag(name):
    with DAG(
        dag_id=f'dag_{name}',
        default_args=args,
        start_date=days_ago(2),
        schedule_interval='5 5 * * *',
        tags=['Test'],
        catchup=False
    ) as dag:
        dummy_task=DummyOperator(
            task_id="dynamic_dummy_task",
            dag=dag
        )
    return dag

globals()["Dynamic_DAG_A"] = generate_dag('A')

Bunu neden iki ayrı dosyada yapmanın işe yaramadığını merak ediyorum.

airflow airflow-scheduler
2021-11-21 00:44:01
1

En iyi cevabı

1

Airflow 1.10 kullanıyorsanız, DAG dosyalarının şunları içermesi gerektiğini düşünüyorum DAG ve airlfow:

https://airflow.apache.org/docs/apache-airflow/1.10.15/concepts.html?highlight=airflowignore#dags

Dag'leri ararken, Airflow yalnızca varsayılan olarak “airflow” ve “DAG” dizelerini içeren python dosyalarını dikkate alır. Bunun yerine tüm python dosyalarını dikkate almak için DAG_DISCOVERY_SAFE_MODE yapılandırma bayrağını devre dışı bırakın.

Hava Akımı 2'de değiştirildi (hafifçe - dag büyük / küçük harf duyarsızdır):

https://airflow.apache.org/docs/apache-airflow/2.2.2/concepts/dags.html

DAG_FOLDER içindeki dag'leri ararken, Airflow yalnızca airflow ve dag (büyük / küçük harfe duyarlı olmayan) dizelerini içeren Python dosyalarını bir optimizasyon olarak görür. Bunun yerine tüm Python dosyalarını dikkate almak için DAG_DISCOVERY_SAFE_MODE yapılandırma bayrağını devre dışı bırakın.

Sanırım sadece içindeki 'hava akışını' özlüyorsun. load_dags.py. Yorumlar da dahil olmak üzere istediğiniz yere ekleyebilirsiniz.

2021-11-21 19:02:47

Diğer dillerde

Bu sayfa diğer dillerde

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................