什麼是 Databricks Apps?
重要
Databricks Apps 處於 公開預覽狀態。
Databricks Apps 可讓開發人員在 Databricks 平臺上建立安全的數據和 AI 應用程式,並與使用者共用這些應用程式。
先前,建立使用 Databricks 工作區所管理數據的數據,以及 Databricks 平台的數據分析功能,需要部署個別基礎結構來裝載應用程式,確保數據控管控件的合規性、管理應用程式安全性,包括驗證和授權等等。 使用 Databricks Apps 時,Databricks 會裝載您的應用程式,因此您不需要設定或部署其他基礎結構。
您的應用程式可以使用 Databricks 平臺的資源和功能,包括用於治理的 Unity 目錄、Databricks SQL 來查詢數據、模型服務、Databricks Jobs for ETL 等 AI 功能,以及工作區中已設定的安全性規則,包括控制應用程式所使用數據存取的規則。 驗證和授權會使用現有的 Azure Databricks 功能,包括 OAuth 和服務主體。
Databricks 為開發人員設計 Databricks Apps。 您可以使用任何架構在 Python 中開發應用程式,例如 Dash、Streamlit 或 Gradio。 因為您的應用程式是可攜式的,因此您可以在本機建立和偵錯它們、將其部署至 Databricks 工作區,然後將它們移至另一個工作區。
需求
工作區需求
若要在 Azure Databricks 工作區中部署和執行應用程式,工作區必須符合下列需求:
- 您必須確定防火牆不會封鎖網域
*.databricksapps.com
。 - Databricks 工作區必須位於支持的區域中。 請參閱 無伺服器功能可用性。。
開發環境需求
若要在本機建立應用程式,並將這些應用程式部署至 Azure Databricks 工作區,您的開發環境必須符合下列需求:
Python 3.11 或更新版本。
Databricks 命令行介面 (Databricks CLI) 版本 v0.229.0 或更新版本,已設定為存取 Databricks 工作區。 若要安裝或更新及設定 Databricks CLI,請參閱安裝或更新 Databricks CLI 和 Databricks CLI 的驗證。
適用於 Python 的 Databricks SDK。 您可以使用 安裝 SDK
pip3
:pip3 install databricks-sdk
請參閱 適用於 Python 的 Databricks SDK。
(選擇性)如果您的應用程式需要存取 Databricks SQL,請安裝適用於 Python 的 Databricks SQL 連接器。 您可以使用 安裝連接器
pip3
:pip3 install databricks-sql-connector
我要在哪裡開發 Databricks 應用程式?
您可以在任何支援 Python 的 IDE 中撰寫及測試應用程式,例如 PyCharm、IntelliJ IDEA 或 Visual Studio Code。 Databricks 建議使用 Visual Studio Code 和適用於 Visual Studio Code 的 Databricks 擴充功能來開發應用程式,但您也可以使用 Databricks 筆記本和檔案編輯器 ,直接在 Databricks 工作區中編輯程式代碼。
如何? 開發和部署 Databricks 應用程式?
若要在本機開發應用程式,以下是典型的工作流程:
- 在慣用的 IDE 中開發您的應用程式,例如 Visual Studio Code。
- 在命令行本機執行您的應用程式,並在瀏覽器中檢視它。
- 當程式代碼完成並測試時,請將程式代碼和必要的成品移至您的 Databricks 工作區。
請參閱 開始使用 Databricks Apps。
若要在UI中建立應用程式或使用預先建置的範例,請參閱 如何? 在 Databricks Apps UI 中建立應用程式?。
我可以搭配 Databricks 應用程式使用 Python 架構嗎?
您可以使用您慣用的 Python 架構來開發應用程式,例如 Dash、Streamlit 或 Gradio。 您可以在 Databricks Apps UI 中看到使用熱門 Python 架構的範例。 請參閱 如何? 在 Databricks Apps UI 中建立應用程式?。
Databricks Apps 如何管理授權?
Databricks Apps 授權模型包含存取應用程式的使用者,以及指派給應用程式的 Azure Databricks 受控服務主體:
若要存取應用程式,用戶必須具有應用程式CAN_USE或CAN_MANAGE許可權。 若要深入瞭解將許可權指派給應用程式,請參閱 設定 Databricks 應用程式的許可權。
建立應用程式時,Databricks Apps 會自動建立 Azure Databricks 受控服務主體,並將該服務主體指派給應用程式。 此服務主體只能存取應用程式中建立的工作區,並且用來驗證和授權工作區中資源的存取權,例如 SQL 倉儲、提供端點的模型,或 Unity 目錄中的安全性實體物件。 應用程式對數據或其他工作區資源的所有存取都會代表服務主體執行,而不是應用程式擁有者或使用者。
如果使用者部署應用程式具有
CAN MANAGE
這些資源的許可權,Databricks Apps 會自動將服務主體許可權授與指派給應用程式的任何資源。 如果需要服務主體存取其他資源,例如數據表或工作區檔案,帳戶或工作區管理員必須授與服務主體對這些資源的存取權。 授與資源的存取權時,Databricks 建議遵循最低許可權的原則,並只授與服務主體所需的最低許可權。 請參閱管理服務主體。您可以在應用程式資源卡片中的應用程式詳細資料頁面上找到服務主體名稱。 服務主體包含應用程式名稱,例如,針對名為
my-hello-world-app
的應用程式,服務主體名稱為app-22ixod my-hello-world-app
。
誰可以建立 Databricks 應用程式?
工作區中的任何使用者都可以建立應用程式。 不過,若要管理指派給應用程式之服務主體的許可權,您必須是帳戶或工作區管理員。
如何? 設定我的 Databricks 應用程式嗎?
Databricks Apps 會自動設定應用程式可以存取的數個環境變數,例如應用程式執行所在的 Databricks 主機。 您也可以使用 YAML 檔案來設定自訂參數。 請參閱 Databricks Apps 設定。
如何? 整合我的 Databricks 應用程式與 Azure Databricks 服務?
您的應用程式可以使用 Databricks 平臺功能,例如 Databricks SQL 來查詢數據、Databricks 作業進行數據擷取和處理、馬賽克 AI 模型服務來存取產生 AI 模型,以及 Databricks 秘密來管理敏感性資訊。 設定您的應用程式時,這些 Databricks 平臺功能稱為 資源。
不過,由於應用程式設計為可攜式,Databricks 建議應用程式不相依於特定資源。 例如,您的應用程式不應該硬式編碼來使用特定的 SQL 倉儲。 相反地,在建立或更新應用程式時,在 Databricks Apps UI 中設定 SQL 倉儲。
此外,由於應用程式已設定為以最低必要許可權執行,因此不應該建立新的資源。 相反地,它們必須依賴 Databricks 平臺來解決現有的相依服務。 每個應用程式都有已指派 Databricks 服務主體。 在應用程式建立或更新期間,服務主體會授與已定義資源相依性的必要許可權。
若要深入瞭解如何將 Databricks 平臺功能新增為應用程式資源,請參閱 將 Databricks 平臺功能指派給 Databricks 應用程式。
哪裡可以找到 Databricks 應用程式的稽核記錄?
若要尋找應用程式的稽核事件,請使用 Azure Databricks 系統數據表。 您可以使用系統資料表來查詢:
- 登入應用程式。 請參閱 哪些使用者已登入 Databricks 應用程式?。
- 對應用程式的許可權或共用變更。 請參閱 哪些 Databricks 應用程式已更新,以變更如何與其他使用者或群組共用應用程式?。
Databricks Apps 的成本為何?
如需 Databricks Apps 定價的相關信息,請參閱 計算 for Apps。
Databricks Apps 系統環境
注意
若要檢視特定應用程式的環境,包括環境變數和已安裝的套件,請移至應用程式詳細數據頁面上的 [ 環境 ] 索引標籤。 請參閱 檢視 Databricks 應用程式的詳細數據。
下列說明應用程式執行的系統環境、應用程式可用的資源,以及已安裝的應用程式和連結庫的版本。
- 操作系統:Ubuntu 22.04 LTS
- Python:3.11.0。 您的應用程式會在 Python 虛擬環境中執行。 所有相依性都會安裝在此虛擬環境中,包括自動安裝的連結庫和您安裝的任何連結庫,例如檔案
requirements.txt
。 - 系統資源:您的應用程式最多可以使用兩個虛擬 CPU(vCPU)和 6 GB 的記憶體。 如果您的應用程式超過已配置的資源,可能會重新啟動。
已安裝的 Python 連結庫
程式庫 | 版本 |
---|---|
databricks-sql-connector | 3.4.0 |
databricks-sdk | 0.33.0 |
mlflow-skinny | 2.16.2 |
gradio | 4.44.0 |
streamlit | 1.38.0 |
shiny | 1.1.0 |
破折號 | 2.18.1 |
flask | 3.0.3 |
fastapi | 0.115.0 |
uvicorn[standard] | 0.30.6 |
gunicorn | 23.0.0 |
dash-ag-grid | 31.2.0 |
dash-mantine-components | 0.14.4 |
dash-bootstrap-components | 1.6.0 |
plotly | 5.24.1 |
plotly-resampler | 0.10.0 |
限制
Databricks 工作區中有10個應用程式的限制。
應用程式所使用的檔案大小不能超過 10 MB。 如果應用程式目錄中的檔案超過此限制,應用程式部署就會失敗,併發生錯誤。
Databricks Apps 不符合 HIPAA、PCI 或 FedRAMP 合規性標準。
當裝載應用程式的 Azure Databricks 計算終止時,不會保存應用程式所建立的記錄。 請參閱 從 Databricks 應用程式記錄。
因為它們不支援 OAuth,所以您無法搭配 Databricks Apps 使用 舊版區域 URL 。