要设置Airflow的默认变量,可以在Airflow的配置文件中进行配置。默认情况下,Airflow使用airflow.cfg
作为配置文件。
打开airflow.cfg
文件,并找到以下部分:
[core]
# ...
# airflow home路径
airflow_home = /path/to/airflow
# dags路径
dags_folder = /path/to/dags
# ...
在[core]
部分下添加以下配置:
# 默认变量路径
default_variables = /path/to/variables.yaml
在上述配置中,/path/to/variables.yaml
是一个YAML格式的文件,其中包含默认变量的定义。例如:
my_variable: "my_value"
another_variable: "another_value"
保存并关闭airflow.cfg
文件。
接下来,在/path/to/airflow
目录下创建一个variables
文件夹,并在该文件夹中创建一个名为__init__.py
的空文件。这将使Airflow识别variables
文件夹作为一个Python模块。
然后,在variables
文件夹中创建一个名为my_variables.py
的Python文件,并添加以下代码:
from airflow import models
default_variables = {
'my_variable': 'my_value',
'another_variable': 'another_value',
}
for key, value in default_variables.items():
models.Variable.set(key, value)
保存并关闭my_variables.py
文件。
重新启动Airflow服务,使配置生效。
现在,您可以在DAG文件中使用这些默认变量。例如,在DAG文件中使用my_variable
的值:
from airflow import DAG
from airflow.models import Variable
default_args = {
'start_date': datetime.datetime(2022, 1, 1),
'my_variable': Variable.get('my_variable')
}
dag = DAG('my_dag', default_args=default_args, ...)
这样,您就可以在DAG定义中使用my_variable
的默认值了。