airflow.providers.amazon.aws.secrets.secrets_manager¶
與從 AWS Secrets Manager 獲取金鑰相關的物件。
類¶
從 AWS Secrets Manager 中檢索連線或變數。 |
模組內容¶
- class airflow.providers.amazon.aws.secrets.secrets_manager.SecretsManagerBackend(connections_prefix='airflow/connections', connections_lookup_pattern=None, variables_prefix='airflow/variables', variables_lookup_pattern=None, config_prefix='airflow/config', config_lookup_pattern=None, sep='/', extra_conn_words=None, **kwargs)[原始碼]¶
基類:
airflow.secrets.BaseSecretsBackend,airflow.utils.log.logging_mixin.LoggingMixin從 AWS Secrets Manager 中檢索連線或變數。
可以透過
airflow.cfg進行如下配置[secrets] backend = airflow.providers.amazon.aws.secrets.secrets_manager.SecretsManagerBackend backend_kwargs = {"connections_prefix": "airflow/connections"}
例如,當
{"connections_prefix": "airflow/connections"}設定後,如果定義了一個路徑為airflow/connections/smtp_default的金鑰,則可以使用 conn_idsmtp_default訪問該連線。當
{"variables_prefix": "airflow/variables"}設定後,如果定義了一個路徑為airflow/variables/hello的金鑰,則可以使用名稱hello訪問該變數。當
{"config_prefix": "airflow/config"}設定後,如果定義了一個路徑為airflow/config/sql_alchemy_conn的金鑰,則可以使用鍵sql_alchemy_conn訪問該配置。您還可以將 AWS 連線額外配置中列出的其他關鍵字引數傳遞給此類,這些引數將用於建立連線並傳遞給 Boto3 客戶端。
[secrets] backend = airflow.providers.amazon.aws.secrets.secrets_manager.SecretsManagerBackend backend_kwargs = {"connections_prefix": "airflow/connections", "region_name": "eu-west-1"}
另請參閱
在 Secret Manager 中儲存金鑰以與此運算子一起使用有兩種方式:將它們儲存在一個欄位中作為連線 URI,或者利用 Secrets Manager 的原生方法將它們儲存在多個欄位中。 Secret Manager 會在欄位名稱中搜索特定詞語來嘗試檢索連線的一部分。這些詞語是
possible_words_for_conn_fields = { "login": ["login", "user", "username", "user_name"], "password": ["password", "pass", "key"], "host": ["host", "remote_host", "server"], "port": ["port"], "schema": ["database", "schema"], "conn_type": ["conn_type", "conn_id", "connection_type", "engine"], }
但是,這些列表可以使用配置引數
extra_conn_words進行擴充套件。此外,您還可以有一個名為 extra 的欄位用於連線的額外引數。請注意,此 extra 欄位必須是有效的 JSON。- 引數:
connections_prefix (str) – 指定用於讀取連線金鑰的字首。如果設定為 None(配置中的 null 值),則不會向 AWS Secrets Manager 傳送連線請求。如果您不想要 connections_prefix,請將其設定為空字串
connections_lookup_pattern (str | None) – 指定連線 ID 需要匹配的模式才能在 AWS Secrets Manager 中查詢。僅當 connections_prefix 不為 None 時適用。如果設定為 None(配置中的 null 值),則所有連線都將首先在 AWS Secrets Manager 中查詢。
variables_prefix (str) – 指定用於讀取變數金鑰的字首。如果設定為 None(配置中的 null 值),則不會向 AWS Secrets Manager 傳送變數請求。如果您不想要 variables_prefix,請將其設定為空字串
variables_lookup_pattern (str | None) – 指定變數鍵需要匹配的模式才能在 AWS Secrets Manager 中查詢。僅當 variables_prefix 不為 None 時適用。如果設定為 None(配置中的 null 值),則所有變數都將首先在 AWS Secrets Manager 中查詢。
config_prefix (str) – 指定用於讀取配置金鑰的字首。如果設定為 None(配置中的 null 值),則不會向 AWS Secrets Manager 傳送配置請求。如果您不想要 config_prefix,請將其設定為空字串
config_lookup_pattern (str | None) – 指定配置鍵需要匹配的模式才能在 AWS Secrets Manager 中查詢。僅當 config_prefix 不為 None 時適用。如果設定為 None(配置中的 null 值),則所有配置鍵都將首先在 AWS Secrets Manager 中查詢。
sep (str) – 用於連線 secret_prefix 和 secret_id 的分隔符。預設值:“/”
extra_conn_words (dict[str, list[str]] | None) – 僅當您將 full_url_mode 設定為 false 並將金鑰儲存在 Secrets Manager 的不同欄位中時使用。您可以在預設詞語之外為每個連線部分新增更多詞語。要搜尋的額外詞語應以列表字典的形式傳遞,每個列表對應一個連線部分。字典的可選鍵必須是:user, password, host, schema, conn_type。