將 Unity 目錄連線 加入為 Databricks Apps 資源,以實現對外部服務與資料來源的安全存取。 Unity Catalog 連線會管理憑證和認證細節,所以你不需要在應用程式碼裡硬編碼憑證。
新增 Unity 目錄連接資源
在新增 Unity Catalog 連線作為資源之前,先先檢視 應用程式資源的前置條件。
- 當你建立或編輯應用程式時,請切換到 「配置 」步驟。
- 在 應用程式資源 區塊,點擊 + 新增資源。
- 選擇 UC 連線 作為資源類型。
- 從你工作區中可用的連線清單中選擇一個 Unity 目錄連線。
- 選取應用程式的權限層級:
-
使用連結: 授權應用程式使用該連線存取外部服務。 這與
USE CONNECTION權限相符。
-
使用連結: 授權應用程式使用該連線存取外部服務。 這與
- (可選)指定一個自訂的資源金鑰,這就是你在應用程式設定中參考連線的方式。 預設索引鍵是
connection。
當你新增 Unity 目錄連線資源時:
- Azure Databricks 會授予你應用程式的服務主體
USE CONNECTION在所選連線上的權限。 - 該應用程式能存取外部服務,無需直接管理憑證。
- 連線憑證由 Unity Catalog 安全管理,不會暴露在你的應用程式程式碼中。
環境變數
當你部署使用 Unity Catalog 連線資源的應用程式時,Azure Databricks 會透過環境變數揭露連線名稱,你可以透過 valueFrom 欄位來參考。
設定範例:
env:
- name: UC_CONNECTION_NAME
valueFrom: connection # Use your custom resource key if different
使用應用程式中的連線:
import os
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.serving import ExternalFunctionRequestHttpMethod
# Access the connection name
connection_name = os.getenv("UC_CONNECTION_NAME")
# Initialize workspace client
w = WorkspaceClient()
# Make HTTP request through the connection
response = w.serving_endpoints.http_request(
conn=connection_name,
method=ExternalFunctionRequestHttpMethod.POST,
path="/api/v1/resource",
json={"key": "value"},
headers={"extra_header_key": "extra_header_value"},
)
# Process the response
print(response)
如需詳細資訊,請參閱 使用環境變數存取資源。
移除 Unity 目錄連接資源
當你從應用程式中移除 Unity 目錄的連線資源時,該應用程式的服務主體會失去對該連線的存取權。 連線本身保持不變,並持續對擁有適當權限的其他使用者和應用程式開放。
最佳做法
在使用 Unity 目錄連接資源時,請考慮以下幾點:
- 針對連線故障和網路問題實作錯誤處理與重試邏輯。
- 監控 API 回應時間與連線延遲,特別是跨區域或跨雲端請求。
- 在向外部服務請求時,特別是對於大型有效載荷或大量 API 呼叫,請考慮資料出口成本。
- 定期檢視並依照你的安全政策輪換連線憑證。
- 驗證 API 回應,並為外部服務呼叫實施適當的逾時值。