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

此條目有幫助嗎?