本機檔案系統密鑰後端¶
此後端在以下使用案例中特別有用
開發:它確保所有終端機視窗之間 (與資料庫相同) 的資料同步,同時值在資料庫重新啟動後 (與環境變數相同) 仍會保留
Kubernetes:它允許您將密鑰儲存在 Kubernetes Secrets 中,或者您可以使用 sidecar 容器和共用卷來同步值
若要使用本機檔案中的變數和連線,請在 [secrets]
區段的 airflow.cfg
中,將 LocalFilesystemBackend
指定為 backend
。
可用的 backend_kwargs
參數
variables_file_path
:包含變數資料的檔案位置。connections_file_path
:包含連線資料的檔案位置。
以下是範例組態
[secrets]
backend = airflow.secrets.local_filesystem.LocalFilesystemBackend
backend_kwargs = {"variables_file_path": "/files/var.json", "connections_file_path": "/files/conn.json"}
支援 JSON
、YAML
和 .env
檔案。所有參數都是選填的。如果未傳遞檔案路徑,後端會傳回空的集合。
儲存和檢索連線¶
如果您已將 connections_file_path
設定為 /files/my_conn.json
,則後端會在尋找連線時讀取 /files/my_conn.json
檔案。
檔案可以使用 JSON
、YAML
或 env
格式定義。根據格式,資料應儲存為 URL 或連線物件。任何額外的 json 參數都可以使用類似 extra_dejson
和 extra
的金鑰來提供。extra_dejson
金鑰可用於以 JSON 物件的形式提供參數,而 extra
金鑰可用於 JSON 字串的情況。extra
和 extra_dejson
金鑰是互斥的。
JSON 檔案必須包含一個物件,其中金鑰包含連線 ID,而值包含一個連線的定義。連線可以定義為 URI (字串) 或 JSON 物件。有關將連線定義為 URI 的指南,請參閱產生連線 URI。有關連線物件參數的說明,請參閱 Connection
。以下是範例 JSON 檔案。
{
"CONN_A": "mysql://host_a",
"CONN_B": {
"conn_type": "scheme",
"host": "host",
"schema": "schema",
"login": "Login",
"password": "None",
"port": "1234"
}
}
YAML 檔案結構與 JSON 的結構相似。連線 ID 的鍵值對以及一個或多個連線的定義。在此格式中,連線可以定義為 URI (字串) 或 JSON 物件。
CONN_A: 'mysql://host_a'
CONN_B:
- 'mysql://host_a'
- 'mysql://host_b'
CONN_C:
conn_type: scheme
host: host
schema: lschema
login: Login
password: None
port: 1234
extra_dejson:
a: b
nestedblock_dict:
x: y
您也可以使用 .env
檔案定義連線。然後金鑰是連線 ID,而值應使用 URI 描述連線。連線 ID 不應重複,否則會引發例外。以下是範例檔案。
mysql_conn_id=mysql://log:password@13.1.21.1:3306/mysqldbrd google_custom_key=google-cloud-platform://?key_path=%2Fkeys%2Fkey.json
儲存和檢索變數¶
如果您已將 variables_file_path
設定為 /files/my_var.json
,則後端會在尋找變數時讀取 /files/my_var.json
檔案。
檔案可以使用 JSON
、YAML
或 env
格式定義。
JSON 檔案必須包含一個物件,其中金鑰包含變數金鑰,而值包含變數值。以下是範例 JSON 檔案。
{ "VAR_A": "some_value", "var_b": "different_value" }
YAML 檔案結構與 JSON 的結構相似,金鑰包含變數金鑰,而值包含變數值。以下是範例 YAML 檔案。
VAR_A: some_value VAR_B: different_value
您也可以使用 .env
檔案定義變數。然後金鑰是變數金鑰,而變數應描述變數值。以下是範例檔案。
VAR_A=some_value var_B=different_value