将变量名加入到不渲染属性列表中
具体方法是在Airflow配置文件(airflow.cfg)中设置“jinja_environment_variables”属性。对于一个变量名为“my_var”的变量,将其添加到不渲染属性列表中的示例代码如下:
[webserver]
jinja_environment_variables = {'no_rendering_attrs': ['my_var']}
在DAG代码中,需要将需要保留其原始值的变量名添加到该属性列表中,示例代码如下:
from airflow import DAG
from airflow.models import Variable
from datetime import datetime
my_var = Variable.get("my_var")
with DAG('my_dag', start_date=datetime.now()) as dag:
task = BashOperator(
task_id='my_task',
bash_command='echo {{ my_var }}',
env={'my_var': my_var},
jinja_env=None,
no_render=False,
no_args_render=None,
templates_dict=None,
output_encoding='utf-8',
no_log=False,
xcom_push=True,
executor_config=None,
volume=None,
mounted_vol=None,
image=None,
secrets=None,
# my_var will not be rendered
no_rendering_attrs=['my_var']
)
通过在不渲染属性列表中设置变量名,就可以避免Airflow渲染不想被渲染的属性。