Airflow 气流:未在subdag pythonOperator中渲染Jinja模板

Airflow 气流:未在subdag pythonOperator中渲染Jinja模板,airflow,airflow-operator,Airflow,Airflow Operator,我在SubDagOperator函数中传递一组参数,然后调用Pythonprerator,但是Jinja模板或宏没有得到渲染 file\u check=subdag运算符( 任务id=子任务id, subdag=加载\子\ dag( dag_id=“%s.%s%”(dag_id,子dag_任务id), params={ “国家”:[“SG”], “日期”:“{execution_date.strftime(“%Y%m%d”)}”, “poke_间隔”:60, “超时”:60*5 }, 开始日期=

我在SubDagOperator函数中传递一组参数,然后调用Pythonprerator,但是Jinja模板或宏没有得到渲染

file\u check=subdag运算符(
任务id=子任务id,
subdag=加载\子\ dag(
dag_id=“%s.%s%”(dag_id,子dag_任务id),
params={
“国家”:[“SG”],
“日期”:“{execution_date.strftime(“%Y%m%d”)}”,
“poke_间隔”:60,
“超时”:60*5
},
开始日期=默认参数['start\u date'],
email=默认参数['email'],
计划时间间隔=无,
),
dag=dag
)
现在在load dag操作符中,将pythonoperator称为

def load\u sub\u dag(dag\u id、开始日期、电子邮件、参数、计划间隔):
dag=dag(
dag_id=dag_id,
计划间隔=计划间隔,
开始日期=开始日期
)
开始=蟒蛇算子(
任务\u id=“开始”,
python\u callable=get\u start\u time,
提供上下文=True,
dag=dag
)
文件路径=源详细信息['path']。替换('$date',参数['date'])
file_paths=[file_paths.replace($cc),country)用于参数['countries']中的国家
对于文件路径中的文件路径:
i+=1
check\u files=PythonOperator(
task_id=“success_file_check_{}}”.format(source,i),
python\u callable=check\u success\u文件,
op_kwargs={“文件路径”:文件路径,“参数”:参数,
“成功文件名”:成功文件名,
“每小时”:每小时},
提供上下文=True,
重试次数=0,
dag=dag
)
开始>>检查\u文件
返回dag
现在,据我所知,jinja模板应该在check_file pythonoperator的op_kawrgs部分中呈现,但这并没有发生,而是我在最终文件名中得到了相同的字符串

此外,当我看到任务详细信息时,我会看到文件名为u'/something/dt={{execution_date.strftime(“%Y%m%d”)}'

气流版本-1.10.2&
celeryexecutor

首先,我认为不能对Airflow 1.10.2上的模板值应用字符串方法(如strftime)

除此之外,如果您试图在另一个字符串中使用Jinja模板,则必须将花括号加倍。e、 g:

        'thats my execution date: {{{{ execution_date }}}} !!!'

@J_heron我尝试添加额外的大括号,但没有效果,当我在调用函数中打印文件名时,文件名仍然是“/something/{{{{{execution{u date}}}}}}”,您不能在params中使用Jinja。我认为应该解决您的问题那么什么是source\u detail?@Elad source\u detail只是一个全局dict,包含带$date的路径模板和其他参数,这些参数根据需要进行替换,但是source\u detail也有参数['date']?我只是不完全理解您在这里试图做什么。@Elad源详细信息包含路径模板,params是另一个dict,它是load_sub_dag中的arg,params['date']以字符串格式返回日期,而源详细信息['path']返回路径为“/somethin/otherthing/dt=$date”,并且$date date被params['date']替换哪个是日期字符串或jinja模板,以后应该转换为日期