Параметр прохождения воздушного потока из кли

Есть ли способ передать параметр:

airflow trigger_dag dag_name {param}

?

У меня есть скрипт, который следит за каталогом для файлов - когда файл попадает в целевой каталог, я хочу, чтобы dag передавал в качестве параметра путь к файлу.

2 ответа

Вы можете передать это так:

airflow trigger_dag --conf {"file_variable": "/path/to/file"} dag_id

Затем в вашем dag вы можете получить доступ к этой переменной, используя шаблоны следующим образом:

{{ dag_run.conf.file_variable }}

Если это не сработает, обмен простой версией вашей метки может помочь получить лучшие ответы.

Да, ты можешь. Ваш Dag должен иметь Dag и Bask Task, например:

from airflow.operators.bash_operators import BashOperator

args = {'start_date':datetime.now(),
        'owner':'airflow',}
dag = DAG(
      dag_id='param_dag', 
      default_args=args,
      schedule_interval=None)

bash_task=BashOperator(
     task_id="bash_task" 
     bash_command= 'bash ~/path/bashscript.sh {{ dag_run.conf["parameter"] if dag_run else "" }} ', 
    //bashscript your script you want to run and the dag_run.conf will hold the parameter you want to pass
     dag=dag)

Теперь в командной строке просто введите команду:

 airflow trigger_dag dag_id --conf '{"parameter":"~/path" }'
Другие вопросы по тегам