管理变量

变量是在Airflow中以简单键值对形式存储和检索任意内容或设置的通用方式。变量可以通过用户界面(Admin -> Variables)、代码或命令行界面进行查看、创建、更新和删除操作。

../_images/variable_hidden.png

更多信息请参阅Variables Concepts文档。

将变量存储在环境变量中

在版本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 Backend

这篇内容对您有帮助吗?