管理变量

变量是一种在 Airflow 中以简单的键值存储形式存储和检索任意内容或设置的通用方法。可以通过 UI(管理员 -> 变量)、代码或 CLI 列出、创建、更新和删除变量。

../_images/variable_hidden.png

有关更多信息,请参阅变量概念文档。

在环境变量中存储变量

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

除了从环境变量或元数据存储数据库中检索变量之外,您还可以启用密钥后端来检索变量。有关更多详细信息,请参阅密钥后端

此条目有帮助吗?