airflow.providers.google.cloud.secrets.secret_manager

与从 Google Cloud Secret Manager 获取连接相关的对象。

属性

log

SECRET_ID_PATTERN

CloudSecretManagerBackend

从 Google Cloud Secret Manager 检索 Connection 对象。

模块内容

airflow.providers.google.cloud.secrets.secret_manager.log[source]
airflow.providers.google.cloud.secrets.secret_manager.SECRET_ID_PATTERN = '^[a-zA-Z0-9-_]*$'[source]
class airflow.providers.google.cloud.secrets.secret_manager.CloudSecretManagerBackend(connections_prefix='airflow-connections', variables_prefix='airflow-variables', config_prefix='airflow-config', gcp_keyfile_dict=None, gcp_key_path=None, gcp_credential_config_file=None, gcp_scopes=None, project_id=PROVIDE_PROJECT_ID, sep='-', impersonation_chain=None, **kwargs)[source]

基类:airflow.secrets.BaseSecretsBackend, airflow.utils.log.logging_mixin.LoggingMixin

从 Google Cloud Secret Manager 检索 Connection 对象。

可通过 airflow.cfg 配置如下

[secrets]
backend = airflow.providers.google.cloud.secrets.secret_manager.CloudSecretManagerBackend
backend_kwargs = {"connections_prefix": "airflow-connections", "sep": "-"}

例如,如果 Secret Manager 的密钥 ID 是 airflow-connections-smtp_default,如果您提供 {"connections_prefix": "airflow-connections", "sep": "-"} 并请求 conn_id smtp_default,则可以访问该密钥。

如果 Secret Manager 的密钥 ID 是 airflow-variables-hello,如果您提供 {"variables_prefix": "airflow-variables", "sep": "-"} 并请求 Variable Key hello,则可以访问该密钥。

完整的密钥 ID 应遵循模式 “[a-zA-Z0-9-_]”。

参数:
  • connections_prefix (str) – 指定用于读取以获取连接的密钥前缀。如果设置为 None (null),则不会向 GCP Secret Manager 发送连接请求。

  • variables_prefix (str) – 指定用于读取以获取变量的密钥前缀。如果设置为 None (null),则不会向 GCP Secret Manager 发送变量请求。

  • config_prefix (str) – 指定用于读取包含秘密的 Airflow 配置的密钥前缀。如果设置为 None (null),则不会向 GCP Secret Manager 发送配置请求。

  • gcp_key_path (str | None) – Google Cloud 服务账户密钥文件 (JSON) 的路径。与 gcp_keyfile_dict 互斥。如果未提供,则使用当前环境中的默认凭据。

  • gcp_keyfile_dict (dict | None) – 密钥文件参数的字典。与 gcp_key_path 互斥。

  • gcp_credential_config_file (dict[str, str] | str | None) – GCP 凭据配置文件的文件路径或内容。

  • gcp_scopes (str | None) – 逗号分隔的字符串,包含 OAuth2 范围。

  • project_id (str) – 用于读取密钥的项目 ID。如果未传递,则使用凭据中的项目 ID。

  • sep (str) – 用于连接 connections_prefix 和 conn_id 的分隔符。默认值:“-”。

  • impersonation_chain (str | collections.abc.Sequence[str] | None) – 可选的服务账户,用于使用短期凭据进行模拟,或者获取列表中最后一个账户访问令牌所需的账户链列表,最后一个账户将在请求中被模拟。如果设置为字符串,该账户必须授予源账户 Service Account Token Creator IAM 角色。如果设置为序列,列表中的身份必须授予 Service Account Token Creator IAM 角色给直接前导的身份,列表中第一个账户授予该角色给源账户。

connections_prefix = 'airflow-connections'[source]
variables_prefix = 'airflow-variables'[source]
config_prefix = 'airflow-config'[source]
sep = '-'[source]
property client: airflow.providers.google.cloud._internal_client.secret_manager_client._SecretManagerClient[source]

返回密钥客户端的属性。

返回:

密钥客户端

返回类型:

airflow.providers.google.cloud._internal_client.secret_manager_client._SecretManagerClient

get_conn_value(conn_id)[source]

获取 Connection 的序列化表示。

参数:

conn_id (str) – 连接 ID

get_variable(key)[source]

从环境变量中获取 Airflow Variable。

参数:

key (str) – 变量键

返回:

变量值

返回类型:

str | None

get_config(key)[source]

获取 Airflow 配置。

参数:

key (str) – 配置选项键

返回:

配置选项值

返回类型:

str | None

此条目有帮助吗?