Airflow Summit 2025 将于 10 月 07-09 日举行。立即注册以获取早鸟票!

airflow.models.variable

属性

log

Variable

一种通用的方式,用于存储和检索任意内容或设置,作为简单的键/值存储。

模块内容

airflow.models.variable.log[source]
class airflow.models.variable.Variable(key=None, val=None, description=None)[source]

Bases: airflow.models.base.Base, airflow.utils.log.logging_mixin.LoggingMixin

一种通用的方式,用于存储和检索任意内容或设置,作为简单的键/值存储。

__tablename__ = 'variable'[source]
id[source]
key[source]
description[source]
is_encrypted[source]
property val[source]

从 Metadata DB 获取 Airflow Variable 并使用 Fernet 密钥解码。

on_db_load()[source]
__repr__()[source]
get_val()[source]

从 Metadata DB 获取 Airflow Variable 并使用 Fernet 密钥解码。

set_val(value)[source]

使用 Fernet 密钥对指定值进行编码并将其存储在 Variables 表中。

classmethod setdefault(key, default, description=None, deserialize_json=False)[source]

返回键的当前值,或者存储默认值并返回它。

其工作方式与 Python 内置的 dict 对象相同。

参数:
  • key – 此 Variable 的 Dict 键

  • default – 如果变量尚未在 DB 中,则设置并返回的默认值

  • description – 设置 Variable 描述的默认值

  • deserialize_json – 将此值存储为 DB 中的 JSON 编码值,并在检索值时进行解码

  • session – 会话

返回:

混合

classmethod get(key, default_var=__NO_DEFAULT_SENTINEL, deserialize_json=False)[source]

获取 Airflow Variable Key 的值。

参数:
  • key (str) – Variable 键

  • default_var (Any) – 如果 Variable 不存在,则为 Variable 的默认值

  • deserialize_json (bool) – 将值反序列化为 Python dict

static set(key, value, description=None, serialize_json=False, session=None)[source]

为给定 Key 的 Airflow Variable 设置值。

此操作会覆盖现有变量。

参数:
  • key (str) – Variable 键

  • value (Any) – 要为 Variable 设置的值

  • description (str | None) – Variable 的描述

  • serialize_json (bool) – 将值序列化为 JSON 字符串

  • session (sqlalchemy.orm.Session | None) – 可选的会话,如果提供则使用,否则创建一个新的

static update(key, value, serialize_json=False, session=None)[source]

使用提供的值更新给定的 Airflow Variable。

参数:
  • key (str) – Variable 键

  • value (Any) – 要为 Variable 设置的值

  • serialize_json (bool) – 将值序列化为 JSON 字符串

  • session (sqlalchemy.orm.Session | None) – 可选的会话,如果提供则使用,否则创建一个新的

static delete(key, session=None)[source]

删除给定 key 的 Airflow Variable。

参数:
  • key (str) – Variable 键

  • session (sqlalchemy.orm.Session | None) – 可选的会话,如果提供则使用,否则创建一个新的

rotate_fernet_key()[source]

轮换 Fernet 密钥。

static check_for_write_conflict(key)[source]

如果变量存在于 metastore 之外,则记录警告。

如果我们尝试将变量写入 metastore,而同一 key 存在于环境变量或自定义 secrets 后端中,则后续读取将无法读取设置的值。

参数:

key (str) – Variable 键

static get_variable_from_secrets(key)[source]

通过遍历所有 Secret Backends 获取 Airflow Variable。

参数:

key (str) – Variable 键

返回:

变量值

返回类型:

str | None

此条目有帮助吗?