【发布时间】:2021-10-05 11:47:42
【问题描述】:
我有一个简短的 DAG,我需要在其中获取存储在 Airflow 中的变量(Airflow -> Admin -> 变量)。但是,当我们用作模板时,我遇到了错误。 示例代码和错误如下所示:
from airflow import DAG
from airflow.models import Variable
from airflow.operators.python import PythonOperator
def display_variable():
my_var = Variable.get("my_var")
print('variable' + my_var)
return my_var
def display_variable1():
my_var = {{ var.value.my_var }}
print('variable' + my_var)
return my_var
dag = DAG(dag_id="variable_dag", start_date=airflow.utils.dates.days_ago(14),
schedule_interval='@daily')
task = PythonOperator(task_id='display_variable', python_callable=display_variable, dag=dag)
task1 = PythonOperator(task_id='display_variable1', python_callable=display_variable1, dag=dag)
task >> task1
这里获取变量值的用法:
Variable.ger("my_var") --> is working
但是,我在使用其他方式时遇到了错误:
{{ var.value.my_var }}
错误:
File "/home/airflow_home/dags/variable_dag.py", line 12, in display_variable1
my_var = {{ var.value.my_var }}
NameError: name 'var' is not defined
【问题讨论】:
标签: python global-variables airflow