管理变量¶
变量是一种通用的方法,用于在 Airflow 中以简单的键值存储方式存储和检索任意内容或设置。 可以从 UI ( 管理 -> 变量
) 、代码或 CLI 中列出、创建、更新和删除变量。
有关更多信息,请参阅 变量概念 文档。
将变量存储在环境变量中¶
1.10.10 版本中的新功能。
Airflow 变量也可以使用环境变量创建和管理。环境变量的命名约定是 AIRFLOW_VAR_{VARIABLE_NAME}
,全部为大写。因此,如果您的变量键是 FOO
,则变量名称应为 AIRFLOW_VAR_FOO
。
例如,
export AIRFLOW_VAR_FOO=BAR
# To use JSON, store them as JSON strings
export AIRFLOW_VAR_FOO_BAZ='{"hello":"world"}'
您可以在 DAG 中使用它们,如下所示
from airflow.models import Variable
foo = Variable.get("foo")
foo_json = Variable.get("foo_baz", deserialize_json=True)
注意
单个下划线包围 VAR
。这与存储 airflow.cfg
参数的方式形成对比,其中双下划线包围配置节名称。使用环境变量设置的变量不会出现在 Airflow UI 中,但您可以在 DAG 文件中使用它们。使用环境变量设置的变量也将优先于 Airflow UI 中定义的变量。
保护变量¶
Airflow 使用 Fernet 来加密存储在元数据存储数据库中的变量。它保证在没有加密密码的情况下,无法在没有密钥的情况下操纵或读取内容。有关配置 Fernet 的信息,请参阅 Fernet。
除了从环境变量或元数据存储数据库检索变量外,您还可以启用 secrets 后端来检索变量。 有关更多详细信息,请参阅 Secrets 后端。