Databricks Apps 設定
重要
Databricks Apps 處於 公開預覽狀態。
本文詳細說明 Databricks Apps 環境中自動設定的設定,並說明如何定義應用程式所需的自定義設定。
Databricks Apps 環境會設定數個環境變數,例如執行應用程式的 Azure Databricks 工作區 URL,以及執行應用程式驗證所需的值。 不過,有時候您的應用程式需要額外的自定義變數。 例如,您可能需要自定義命令來執行您的應用程式或參數,以連線到 SQL 倉儲。 針對這些自定義組態參數,請使用 app.yaml
檔案。
使用 app.yaml
檔案設定 Databricks 應用程式
注意
您的應用程式組態檔可以使用 .yaml
或 .yml
擴展名。
若要定義應用程式的自定義組態,請將檔案新增 app.yaml
至您的專案。 下表顯示您可以在 檔案中 app.yaml
定義的設定,後面接著範例組態檔。
app.yaml 設定 |
---|
command 類型: sequence (英文)要執行應用程式的選擇性自變數集。 當您需要自定義命令來執行應用程式時,請使用此設定。 預設值為 [python, app.py] 。命令不會在殼層中執行,因此環境中設定的任何值都不會傳遞至您的應用程式。 如果您的應用程式需要其他參數才能執行,請使用 env 結構。這是選擇性設定。 |
env 類型: list (英文)用來定義要傳遞至應用程式的環境變數之選擇性索引鍵/值組清單的最上層索引鍵。 value 可以是實際參數值或值儲存位置的參考。 清單中的有效專案如下:- name :環境變數的名稱。- 下列其中一項: - value :環境變數的值。- valueFrom :針對外部定義的值,包含值的來源名稱。 例如,秘密或包含值的資料庫數據表名稱。這是選擇性設定。 |
Streamlit 應用程式的範例app.yaml
下列範例 app.yaml
組態檔會執行 Streamlit 應用程式,並傳入 SQL 倉儲標識元和 參數的值 STREAMLIT_GATHER_USAGE_STATS
:
command: [
"streamlit",
"run",
"app.py"
]
env:
- name: "DATABRICKS_WAREHOUSE_ID"
value: "quoz2bvjy8bl7skl"
- name: "STREAMLIT_GATHER_USAGE_STATS"
value: "false"
Flask 應用程式的範例app.yaml
下列範例 app.yaml
組態檔會使用 Gunicorn 伺服器執行 Flask 應用程式,並設定包含 Unity 目錄磁碟區路徑的環境變數:
command:
- gunicorn
- app:app
- -w
- 4
env:
- name: "VOLUME_URI"
value: "/Volumes/catalog-name/schema-name/dir-name"
參考 Databricks 秘密
若要參考設定為應用程式資源相依性的密碼,請在組app.yaml
態的 區段中設定。valueFrom: <dependency_name>
env
將取代 dependency_name
為秘密資源組態中的資源金鑰值。 若要深入瞭解 Databricks Apps 資源相依性,請參閱 如何? 整合我的 Databricks 應用程式與 Azure Databricks 服務?。 若要深入瞭解管理 Databricks 秘密,請參閱 管理秘密。
下列範例 app.yaml
會參考設定為資源相依性的密碼:
command: [
"python",
"app.py"
]
env:
- name: "SECRET_KEY"
valueFrom: "secret-name"
Databricks Apps 環境變數
下列變數會自動在 Databricks Apps 環境中設定,並可供所有應用程式使用。 如果您需要設定其他環境變數,請將它們新增至 app.yaml 檔案。
變數 | 描述 |
---|---|
DATABRICKS_APP_NAME |
執行中應用程式的名稱。 |
DATABRICKS_WORKSPACE_ID |
應用程式所屬 Databricks 工作區的唯一標識碼。 |
DATABRICKS_HOST |
應用程式所屬 Databricks 工作區的 URL。 |
DATABRICKS_APP_PORT |
應用程式應該接聽的網路埠。 |
DATABRICKS_CLIENT_ID |
指派給應用程式的 Databricks 服務主體用戶端識別碼。 |
DATABRICKS_CLIENT_SECRET |
指派給應用程式的 Databricks 服務主體的 OAuth 秘密。 |
Streamlit 的預設環境變數
下列 Streamlit 特定變數會在 Databricks Apps 環境中自動設定,並可供使用 Streamlit 架構的 Databricks 應用程式使用:
變數 | 描述 |
---|---|
STREAMLIT_SERVER_ADDRESS |
Streamlit 要使用的伺服器位址。 此值設定為 0.0.0.0,且不得覆寫。 |
STREAMLIT_SERVER_PORT |
Streamlit 要使用的埠。 此值設定為DATABRICKS_APP_PORT,且不可覆寫。 |
STREAMLIT_SERVER_ENABLE_XSRF_PROTECTION |
由於 Databricks Apps 反向 Proxy 會防止跨網站偽造要求 (XSRF),因此這會設定為 false 。 |
STREAMLIT_SERVER_ENABLE_CORS |
因為 Databricks Apps 反向 Proxy 會防止跨原始資源分享 (CORS),因此這會設定為 false 。 |
STREAMLIT_SERVER_HEADLESS |
這會設定為 true ,因此 Streamlit 會在啟動時不開啟瀏覽器窗口執行。 |
STREAMLIT_BROWSER_GATHER_USAGE_STATS |
這會設定為 false ,以防止將使用者統計數據傳送至 Streamlit。 |