airflow.models.variable

模块内容

变量

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

属性

log

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

基类: airflow.models.base.Base, airflow.utils.log.logging_mixin.LoggingMixin

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

property val[来源]

从元数据数据库获取 Airflow 变量并使用 Fernet 密钥对其进行解码。

__tablename__ = 'variable'[来源]
id[来源]
key[来源]
description[来源]
is_encrypted[来源]
on_db_load()[来源]
__repr__()[来源]

返回 repr(self)。

get_val()[来源]

从元数据数据库获取 Airflow 变量并使用 Fernet 密钥对其进行解码。

set_val(value)[来源]

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

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

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

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

参数
  • key – 此变量的字典键

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

  • description – 设置变量描述的默认值

  • deserialize_json – 将此值作为 JSON 编码的值存储在数据库中,并在检索值时对其进行解码

  • session – 会话

返回

混合

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

获取 Airflow 变量键的值。

参数
  • key (str) – 变量键

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

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

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

使用给定的键设置 Airflow 变量的值。

此操作将覆盖现有变量。

参数
  • key (str) – 变量键

  • value (Any) – 为变量设置的值

  • description (str | None) – 变量的描述

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

  • session (sqlalchemy.orm.Session) – 会话

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

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

参数
  • key (str) – 变量键

  • value (Any) – 为变量设置的值

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

  • session (sqlalchemy.orm.Session) – 会话

static delete(key, session=None)[来源]

删除给定键的 Airflow 变量。

参数

key (str) – 变量键

rotate_fernet_key()[source]

轮换 Fernet 密钥。

static check_for_write_conflict(key)[source]

如果元数据存储之外存在变量,则记录警告。

如果我们尝试将变量写入元数据存储,而相同的键存在于环境变量或自定义密钥后端中,则后续读取将不会读取设置的值。

参数

key (str) – 变量键

static get_variable_from_secrets(key)[source]

通过迭代所有密钥后端获取 Airflow 变量。

参数

key (str) – 变量键

返回

变量值

返回类型

str | None

此条目是否有帮助?