airflow.models.connection

模块内容

Connection

用于存储有关不同数据库实例连接信息的占位符。

函数

parse_netloc_to_hostname(*args, **kwargs)

请勿使用,此方法已弃用。

sanitize_conn_id(conn_id[, max_length])

清理连接 ID,并仅允许其中包含特定字符。

属性

log

RE_SANITIZE_CONN_ID

CONN_ID_MAX_LEN

airflow.models.connection.log[源代码]
airflow.models.connection.RE_SANITIZE_CONN_ID[源代码]
airflow.models.connection.CONN_ID_MAX_LEN: int = 250[源代码]
airflow.models.connection.parse_netloc_to_hostname(*args, **kwargs)[源代码]

请勿使用,此方法已弃用。

airflow.models.connection.sanitize_conn_id(conn_id, max_length=CONN_ID_MAX_LEN)[源代码]

清理连接 ID,并仅允许其中包含特定字符。

也就是说,它允许字母数字字符以及符号 #,!,-,_,.,:,/, 和 () 从 1 个到最多 250 个连续匹配。如果需要,可以通过设置 max_length 来调整最大长度。

您可以在这里尝试使用正则表达式:https://regex101.com/r/69033B/1

选择的字符是为了防止注入 javascript 或可执行位,以避免前端出现任何尴尬的行为。

参数
  • conn_id (str | None) – 要清理的连接 ID。

  • max_length – 连接 ID 的最大长度,默认为 250。

返回

清理后的字符串,否则返回 None

返回类型

str | None

class airflow.models.connection.Connection(conn_id=None, conn_type=None, description=None, host=None, login=None, password=None, schema=None, port=None, extra=None, uri=None)[源代码]

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

用于存储有关不同数据库实例连接信息的占位符。

这里的想法是,脚本使用对数据库实例 (conn_id) 的引用,而不是在使用运算符或钩子时硬编码主机名、登录名和密码。

另请参阅

有关如何使用此类的更多信息,请参阅:管理连接

参数
  • conn_id (str | None) – 连接 ID。

  • conn_type (str | None) – 连接类型。

  • description (str | None) – 连接描述。

  • host (str | None) – 主机。

  • login (str | None) – 登录名。

  • password (str | None) – 密码。

  • schema (str | None) – 架构。

  • port (int | None) – 端口号。

  • extra (str | dict | None) – 额外元数据。非标准数据(如私钥/SSH 密钥)可以保存在此处。JSON 编码的对象。

  • uri (str | None) – 描述连接参数的 URI 地址。

property password[源代码]

密码。该值在读取/设置值时进行解密/加密。

property extra[源代码]

额外数据。该值在读取/设置值时进行解密/加密。

property extra_dejson: dict[source]

返回通过反序列化 JSON 得到的 extra 属性。

EXTRA_KEY = '__extra__'[source]
__tablename__ = 'connection'[source]
id[source]
conn_id[source]
conn_type[source]
description[source]
host[source]
schema[source]
login[source]
port[source]
is_encrypted[source]
is_extra_encrypted[source]
on_db_load()[source]
parse_from_uri(**uri)[source]

在构造函数中使用 uri 参数,此方法已弃用。

get_uri()[source]

返回 URI 格式的连接信息。

get_password()[source]

返回加密的密码。

set_password(value)[source]

加密密码并设置到对象属性中。

get_extra()[source]

返回加密的额外数据。

set_extra(value)[source]

加密额外数据并保存到对象的属性中。

rotate_fernet_key()[source]

使用新密钥加密数据。参见:Fernet

get_hook(*, hook_params=None)[source]

根据 conn_type 返回 hook。

__repr__()[source]

返回 repr(self)。

log_info()[source]

单独读取每个字段或使用默认表示形式 (__repr__)。

此方法已弃用。

debug_info()[source]

单独读取每个字段或使用默认表示形式 (__repr__)。

此方法已弃用。

test_connection()[source]

调用 get_hook 方法并在其上执行 test_connection 方法。

get_extra_dejson(nested=False)[source]

将 extra 属性反序列化为 JSON。

参数

nested (bool) – 确定嵌套结构是否也反序列化为 JSON (默认为 False)。

classmethod get_connection_from_secrets(conn_id)[source]

通过 conn_id 获取连接。

参数

conn_id (str) – 连接 ID

返回

连接

返回类型

Connection

classmethod from_json(value, conn_id=None)[source]
as_json()[source]

将 Connection 转换为 JSON 字符串对象。

此条目是否有帮助?