Databricks 應用程式可以與各種 Azure Databricks 平臺功能整合,例如 Databricks SQL 來查詢數據、用於數據擷取和處理的 Lakeflow 作業、馬賽克 AI 模型服務來存取產生 AI 模型,以及用於管理敏感性資訊的 Azure Databricks 秘密。 在應用程式的內容中,這些平臺功能稱為 資源。
為什麼要使用資源?
若要讓應用程式保持可攜式且安全,請避免硬式編碼資源標識碼。 例如,不要在應用程式程式碼中內嵌固定的 SQL 倉儲識別碼,而是透過 Databricks Apps UI 將 SQL 倉儲設定為資源。
使用 Databricks Apps 資源,而不是直接 API 呼叫,有數個優點:
- 自動管理憑證和權限,從而消除程式碼中的手動權杖處理。
- 自動處理資源路徑、端點和連線詳細資料。
- 提供安全且受管理的存取,而不是要求自我管理的憑證來進行直接的 API 呼叫。
- 讓應用程式在環境之間保持可攜性,而無需變更程式碼。
支援的資源類型
下表列出您可以新增至 Databricks 應用程式的所有資源類型:
| 資源類型 | Description | 預設資源金鑰 | 可用權限 |
|---|---|---|---|
| Genie 空間 | AI 驅動的自然語言查詢分析界面 | genie-space |
|
| Lakebase 資料庫 | 用於資料儲存和查詢的 Unity 目錄資料庫 | database |
|
| Lakeflow 作業 | 資料擷取和處理工作流程 | job |
|
| MLflow 實驗 | 機器學習實驗追蹤與模型生命週期管理 | experiment |
|
| 模型服務端點 | 推斷請求的機器學習模型部署 | serving-endpoint |
|
| 祕密 | 安全儲存 API 金鑰和權杖等敏感值 | secret |
|
| SQL 倉儲 | 執行 SQL 查詢的運算資源 | sql-warehouse |
|
| Unity 目錄連結 | 與外部資料來源的管理連線 | connection |
|
| 使用者自訂函式 | Unity 目錄中的註冊 SQL 與 Python 函式 | function |
|
| Unity 目錄磁碟區 | Unity 目錄中應用程式工件和資料的檔案儲存體 | volume |
|
| 向量搜尋索引 | 語意搜尋與基於相似性的向量嵌入檢索 | vector-search-index |
|
先決條件
若要將資源新增至應用程式,必須符合下列條件:
- 資源必須存在。
- 新增資源的用戶必須具有
Can manage資源和應用程式的許可權。
應用程式會以最低許可權執行,並依賴 Azure Databricks 平臺內的現有資源。 部署時,應用程式的服務主體會存取這些資源,而且必須具有必要的許可權,例如 SQL 查詢的數據表層級存取權或秘密的讀取許可權。 請參閱 在 Databricks 應用程式中設定授權。
設定應用程式的資源
資源可讓您的應用程式安全地連線到其相依的服務,而不需要硬式編碼敏感性或環境特定值。
當您建立或編輯應用程式時,請直接在 Databricks Apps UI 中新增資源。
- 當你建立或編輯應用程式時,請切換到 「配置 」步驟。
- 在 應用程式資源 區塊,點擊 + 新增資源。
- 選取您要新增的資源類型。
- 設定資源上應用程式服務主體的許可權。
- 將索引鍵指派給資源,並在檔案中
app.yaml參考該索引鍵。
管理資源的應用程式存取權
每個應用程式都有專用 的服務主體。 請遵循這些最佳做法,安全地管理存取。
- 使用應用程式的服務主體進行驗證。 切勿在程式碼中硬式編碼個人存取權杖 (PAT)。 存取認證會自動插入為環境變數:
DATABRICKS_CLIENT_IDDATABRICKS_CLIENT_SECRET
- 請勿在應用程式或跨用戶之間共用服務主體認證。 每個應用程式都應該使用自己的專用認證來隔離和安全性。
- 套用最小權限原則。 只授與應用程式服務主體所需的最低許可權。 例如:
- 如果應用程式只需要執行查詢,請在 SQL 倉儲上授予
CAN USE。 -
CAN QUERY如果應用程式只傳送推斷要求,則授與服務端點。 - 根據應用程式的數據存取需求,授予
SELECT或MODIFY權限至 Unity Catalog 的數據表。
- 如果應用程式只需要執行查詢,請在 SQL 倉儲上授予
後續步驟
將資源新增至應用程式之後,請在應用程式組態的 env 區段中使用 valueFrom 欄位來參考這些資源。 如需指示,請參閱 在 Databricks 應用程式中定義環境變數。