Airflow 从气流中提取参数

Airflow 从气流中提取参数,airflow,Airflow,我有以下接线员: import = BashOperator( task_id='import', bash_command="""python3 script.py `{{ var.value.run_value }}` 'file.json'""", dag=dag) 当我查看渲染模板时,我看到: python3 script.py `2018-09-13 11:53:38.725089` 'file.json' 到目前为止还不错。 但是,我的脚本似乎无法使用

我有以下接线员:

import = BashOperator(
    task_id='import',
    bash_command="""python3 script.py `{{ var.value.run_value }}`  'file.json'""",
    dag=dag)
当我查看渲染模板时,我看到:

python3 script.py `2018-09-13 11:53:38.725089`  'file.json'
到目前为止还不错。 但是,我的脚本似乎无法使用此输入:

if __name__ == '__main__':
    if str(sys.argv[1]):
        time_value = str(sys.argv[1])[:-7]  # from 2018-09-13 11:01:18.287705 to 2018-09-13 11:01:18
    else:
        time_value = '1900-01-01 00:00:00'
    requestedDate = time_value.split(' ', 1)[0]          #From 2018-08-20 15:00:00  get only 2018-08-20
    requestedTime = (time_value.split(' ', 1)[1])[:-3]   #From 2018-08-20 15:00:00  get only 15:00
    pathConfigFile = (sys.argv[2])
这不管用

我想要的是:

time_value  =  YYYY-MM-DD HH:MM:SS
requestedDate = YYYY-MM-DD
requestedTime = HH:MM:SS
pathConfigFile = 2nd parameter given.
气流告诉我:

 {bash_operator.py:101} INFO - SyntaxError: invalid syntax 
而且,我甚至不能打印输入。 当我尝试不使用纯python脚本的代码时,我没有任何问题

我应该注意到。Airflow在
Python2.7下运行,但脚本在
Python3下执行


问题出在哪里?

您似乎在后面的记号中引用了宏,Bash将其解释为希望执行内容。你应该切换到单引号

渲染输出应如下所示:

python3 script.py '2018-09-13 11:53:38.725089'  'file.json'

您似乎在back ticks中引用了宏,Bash将其解释为希望执行内容。你应该切换到单引号

渲染输出应如下所示:

python3 script.py '2018-09-13 11:53:38.725089'  'file.json'