共用方式為


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。