Воздушный поток Необязательные аргументы для PythonOperator - PullRequest
0 голосов
/ 05 марта 2019

Я хочу, чтобы мой dag мог запускаться как с обязательным, так и с необязательным параметром

def func(ds, **kwargs):
    print("Required value of {} for key=required".
        format(kwargs['dag_run'].conf['required']))
value="default_value"

# logic to check kwargs['dag_run'].conf['optional'] exist and replace value 
if optional value exist.

some_func(kwargs['dag_run'].conf[required], value)

Мой код PythonOperator будет выглядеть следующим образом

PythonOperator(
    task_id="test_optional_input",
    provide_context = True,
    python_callable = func,
    dag=dag
)

Так что, когда я запускаю свой dagтолько с:

airflow trigger_dag test_optional --conf '{"required":"required_arg"}' 

Airflow будет использовать default_value вместо того, чтобы ожидать, что оно будет передано из cli.

Кто-нибудь знает, как мне этого добиться?

...