故障排除 Microsoft Fabric REST API 介面

簡介

本文將協助你了解並排除 Microsoft Fabric REST API 常見的錯誤。 它說明了服務所使用的標準錯誤格式,並提供解決最常遇到的 HTTP 狀態碼的指引。

了解 Microsoft Fabric 錯誤回應

當處理對 Microsoft Fabric REST API 的請求時發生錯誤,服務會在回應主體中回傳一個標準 ErrorResponse 物件。

在排除故障時,務必擷取並記錄 requestId,因為它能唯一識別請求,且在聯絡 Microsoft 支援時是必須的。 請求 ID 同時存在於回應主體與回應標頭中。

重要

  • errorCode 價值是穩定且基於合約的。
  • 人類可 message 讀的文字可能會隨時間改變,且不應以程式化方式解析。

ErrorResponse 架構

名稱 類型 Description
errorCode string 錯誤條件的穩定識別碼。 實作錯誤處理邏輯時,請使用此值。
message string 人類看得懂的錯誤描述。
moreDetails ErrorResponseDetails[] 額外錯誤細節的可選清單。
relatedResource ErrorRelatedResource 如適用,提供與錯誤相關的資源資訊。
requestId string 失敗請求的唯一識別碼。 聯絡 Microsoft 支援時請包含此數值。

ErrorResponseDetails 架構

為複雜的錯誤情境提供額外背景。

名稱 類型 Description
errorCode string 一個穩定的識別碼,描述特定的錯誤細節。
message string 易於理解的錯誤細節說明。
relatedResource ErrorRelatedResource 與此特定錯誤細節相關的資源。

ErrorRelatedResource 架構

識別出錯誤所涉及的資源。

名稱 類型 Description
resourceId string 錯誤中涉及的資源 ID。
resourceType string 資源的類型(例如工作區、項目或容量)。

常見的 HTTP 錯誤情境

以下章節說明 Microsoft Fabric REST API 常見的 HTTP 狀態碼,以及典型的根因與建議的解決方法。

API 回傳 401 – 未授權

401 回應表示請求在驗證或存取權杖驗證過程中失敗。

常見的根本原因

錯誤碼 Description 解決辦法
TokenExpired 存取令牌已過期。 取得新的存取權杖並重新嘗試請求。
InsufficientScopes 存取權杖不包含所需的範圍。 更新應用程式以請求 API 規範中所描述的必要範圍,或更新 Microsoft Entra 應用程式註冊。

API 返回 403 – 禁止

403 回應表示呼叫者已認證,但尚未擁有足夠權限對目標資源執行請求操作。

常見的根本原因

錯誤碼 Description 解決辦法
InsufficientPrivileges 呼叫者沒有存取該資源所需的權限。 請工作區或資源管理員授予呼叫的使用者或服務主體足夠的權限。

API 回傳 404 – 未找到

404 回應表示請求或引用的資源不存在或無法被呼叫者存取。

注意

個別 API 可能會定義額外的 API 專屬錯誤碼。 請務必參考 API 規範以獲得權威細節。

常見的根本原因

錯誤碼 Description 解決辦法
WorkspaceNotFound 找不到指定的工作區。 確認提供正確的工作區物件 ID。
EntityNotFound 但找不到所請求的資源。 確認提供的資源 ID 是否正確。 遺失的實體會在錯誤回應欄位中被識別 relatedResource 。

API 回傳 429 – 請求過多

429 回應表示請求已被限速。 Microsoft Fabric 會基於兩個不同的原因傳回 429 狀態碼,而每個原因都可由回應主體中的不同 errorCode 識別。

常見的根本原因

錯誤碼 Description 解決辦法
RequestBlocked 請求速率超過了服務的限速限制。 請等標頭上指定的 Retry-After 時間再重試。 請參見 您的應用程式中處理速率限制。
CapacityLimitExceeded 您的容量所耗用的運算資源(容量單位)已超出所購買 Fabric SKU 的限制。 請稍後再重試該請求。 請參閱「處理容量節流」。

速率限制(RequestBlocked)

錯誤 RequestBlocked 表示請求速率超過服務的限速限制。

  • 調節是根據呼叫者身份強制執行的。
  • 頻率限制通常在一分鐘的時間窗口內評估。

重試時序資訊

當發生速率限制時,重試資訊會在兩個位置提供:

  • 回應主體(message)
    範例:
    "Request is blocked by the upstream service until: 12/24/2025 17:02:20 (UTC)"

  • Retry-After HTTP 回應標頭
    指定用戶端必須等待的秒數,才能重試。

實作重試邏輯時,務必優先使用 Retry-After 標頭。

處理應用程式中的速率限制

應用程式應該:

  • 偵測 HTTP 429 回應。
  • 解析並尊重Retry-After標頭。
  • 在高規模情境中,應用有限重試策略,例如帶抖動的指數退避。
  • 避免無限次重試。

降低遭到速率限制的可能性

  • 如果可用,請使用大批量和批次操作。
  • 偏好清單 API ,而非重複的單一資源請求。
  • 緩存常被存取的資料,尤其是變動不頻繁的元資料。
  • 透過均勻分配請求,避免流量突發。

容量超過CapacityLimitExceeded()

錯誤CapacityLimitExceeded表示您所使用的運算(容量單位)超過了購買的 Fabric SKU 的限制。 與速率限制不同,這種限速並非由特定呼叫者呼叫的 API 次數所造成;它反映該容量上所有工作負載所消耗的整體計算量。

範例回應正文:

"Your organization's Fabric compute capacity has exceeded its limits. Try again later."

處理容量限制

因為這種節流取決於您的容量所耗用的整體運算資源,而不是個別要求的速率,所以 Retry-After 標頭不適用;在該容量的運算資源使用量回落到其限制範圍內之前,立即重試不太可能成功。 應用程式應該:

  • 稍後使用具上限且採用指數退避的重試策略,重新傳送該要求。
  • 如果錯誤持續存在,可以考慮擴大或縮放 Fabric 容量。

欲了解更多容量單位、SKU 及 Fabric 容量的消耗方式,請參閱「規劃您的容量規模」。

總結

建立與 Microsoft Fabric REST API 的可靠整合需要強大的錯誤處理與高效的請求模式。 透過理解錯誤回應、尊重限速訊號並優化請求模式,你可以打造具備韌性的應用程式。


如需更多問題或社群指引,請參閱 Microsoft Fabric 社群