管理變數

變數是一種通用方式,可以在 Airflow 內以簡單的鍵值儲存方式來儲存和檢索任意內容或設定。變數可以從 UI (管理員 -> 變數)、程式碼或 CLI 中列出、建立、更新和刪除。

../_images/variable_hidden.png

請參閱 變數概念 文件以取得更多資訊。

將變數儲存在環境變數中

版本 1.10.10 新增。

Airflow 變數也可以使用環境變數來建立和管理。環境變數命名慣例是 AIRFLOW_VAR_{VARIABLE_NAME},全部大寫。因此,如果您的變數鍵是 FOO,則變數名稱應為 AIRFLOW_VAR_FOO

例如,

export AIRFLOW_VAR_FOO=BAR

# To use JSON, store them as JSON strings
export AIRFLOW_VAR_FOO_BAZ='{"hello":"world"}'

您可以在 DAG 中使用它們,如下所示

from airflow.models import Variable

foo = Variable.get("foo")
foo_json = Variable.get("foo_baz", deserialize_json=True)

注意

單底線包圍 VAR。這與儲存 airflow.cfg 參數的方式形成對比,後者使用雙底線包圍組態區段名稱。使用環境變數設定的變數不會出現在 Airflow UI 中,但您將能夠在 DAG 檔案中使用它們。使用環境變數設定的變數也將優先於在 Airflow UI 中定義的變數。

保護變數安全

Airflow 使用 Fernet 來加密儲存在中繼資料儲存庫資料庫中的變數。它保證在沒有加密密碼的情況下,內容無法在沒有金鑰的情況下被操縱或讀取。有關設定 Fernet 的資訊,請參閱 Fernet

除了從環境變數或中繼資料儲存庫資料庫檢索變數外,您還可以啟用 secrets backend 來檢索變數。有關更多詳細資訊,請參閱 Secrets Backend

這個條目是否有幫助?