airflow.providers.google.cloud.secrets.secret_manager

關於從 Google Cloud Secrets Manager 獲取連線物件的物件。

模組內容

類別

CloudSecretManagerBackend

從 Google Cloud Secrets Manager 檢索連線物件。

屬性

log

SECRET_ID_PATTERN

airflow.providers.google.cloud.secrets.secret_manager.log[原始碼]
airflow.providers.google.cloud.secrets.secret_manager.SECRET_ID_PATTERN = '^[a-zA-Z0-9-_]*$'[原始碼]
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)[原始碼]

繼承自: airflow.secrets.BaseSecretsBackend, airflow.utils.log.logging_mixin.LoggingMixin

從 Google Cloud Secrets Manager 檢索連線物件。

可透過 airflow.cfg 進行如下配置

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

例如,如果 Secrets Manager 密鑰 ID 是 airflow-connections-smtp_default,如果您提供 {"connections_prefix": "airflow-connections", "sep": "-"} 並請求 conn_id smtp_default,則可以存取此密鑰。

如果 Secrets Manager 密鑰 ID 是 airflow-variables-hello,如果您提供 {"variables_prefix": "airflow-variables", "sep": "-"} 並請求變數鍵 hello,則可以存取此密鑰。

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

參數
  • connections_prefix (str) – 指定讀取以取得連線的密鑰前綴。如果設定為 None (null),則不會將連線請求傳送至 GCP Secrets Manager

  • variables_prefix (str) – 指定讀取以取得變數的密鑰前綴。如果設定為 None (null),則不會將變數請求傳送至 GCP Secrets Manager

  • config_prefix (str) – 指定讀取以取得包含密鑰的 Airflow 配置的密鑰前綴。如果設定為 None (null),則不會將配置請求傳送至 GCP Secrets 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) – 可選的服務帳戶,用於使用短期憑證模擬,或取得列表中最後一個帳戶的存取權杖所需的帳戶鏈式列表,該帳戶將在請求中被模擬。如果設定為字串,則帳戶必須授予原始帳戶「服務帳戶權杖建立者」IAM 角色。如果設定為序列,則列表中的身分必須將「服務帳戶權杖建立者」IAM 角色授予直接前一個身分,列表中的第一個帳戶將此角色授予原始帳戶。

property client: airflow.providers.google.cloud._internal_client.secret_manager_client._SecretManagerClient[原始碼]

返回密鑰客戶端的屬性。

返回

密鑰客戶端

返回類型

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

get_conn_value(conn_id)[原始碼]

取得連線的序列化表示形式。

參數

conn_id (str) – 連線 ID

get_variable(key)[原始碼]

從 Secrets Manager 取得 Airflow 變數。

參數

key (str) – 變數鍵

返回

變數值

返回類型

str | None

get_config(key)[原始碼]

取得 Airflow 配置。

參數

key (str) – 配置選項鍵

返回

配置選項值

返回類型

str | None

這個條目是否有幫助?