Azure Cosmos DB 的 HTTP 狀態碼

本文提供 REST 作業所傳回的 HTTP 狀態碼。

程式碼 說明
200 確定 下列其中一個 REST 作業成功:

- GET 在資源上。
- PUT 在資源上。
- POST 在資源上。
- POST 在預存程式資源上執行預存程式。
201 已建立 建立資源的 POST 作業成功。
204 無內容 成功完成 DELETE 作業。
400 不正確的要求 要求本文中的 JSON、SQL 或 JavaScript 無效。

此外,當資源的必要屬性不存在或在資源上的 POST 或 PUT 主體中設定時,也可能傳回 400。

當 GET 作業的一致性層級被某個帳戶設定的更強一致性覆寫時,系統也會傳回 400。

當需要 x-ms-documentdb-partitionkey 的要求不包含它時,也會傳回 400。
401 未經授權 當要求的資源標頭無效時 Authorization ,會傳回 401。
403 禁止 授權權杖已過期。

403 程式碼也會在作業期間 POST 傳回,以在達到資源配額時建立資源。 此案例的範例是當您嘗試將檔新增至已到達其布建儲存體的集合時。

當預存程序、觸發程序或 UDF 已標記為高資源使用量且遭到封鎖而無法執行時,也可能傳回 403。

當 Azure Cosmos DB 帳戶上設定的防火牆規則封鎖您的要求時,就會傳回 403 禁止錯誤。 允許清單之外的機器發出的任何要求都會收到 403 回應。

403.3 – 此狀態碼會在手動容錯移轉作業期間針對寫入要求傳回。 此狀態碼會由驅動程式用來作為重新導向程式碼,以將寫入要求轉送至新的寫入區域。 直接 REST 用戶端必須在 DatabaseAccount 上執行 GET,以識別目前的寫入區域並將寫入要求轉送至該端點。
404 找不到 作業嘗試在已經不存在的資源上執行。 例如,資源可能已經遭到刪除。
408 要求逾時 作業未在分配的時間內完成。 預存程序、觸發程序或 UDF (查詢內) 未在執行時間上限內完成執行時,就會傳回此狀態碼。
409 衝突 現有資源正在使用提供給 PUTPOST 作業上資源的識別碼。 若要解決這個問題,請為此資源使用另一個識別碼。 針對分割集合,在分割區索引鍵值相同的所有文件中,識別碼不得重複。
412 前置條件失敗 此作業指定了不同於伺服器上可用版本的 eTag,即開放式並行存取錯誤。 讀取最新版的資源及更新要求上的 eTag 之後,重試要求。
413 實體過大 要求中的文件大小超過要求可允許的文件大小。 允許的文件大小上限為 2 MB。
423 鎖定 另一項調整作業正在進行中,因此無法執行輸送量調整作業。
424 失敗的相依性 當文件作業在 TransactionalBatch 作業的交易範圍內失敗時,批次中的所有其他作業都會被視為失敗的相依性。 此狀態碼表示目前作業因為相同交易範圍內的另一個失敗而被視為失敗。
429 太多要求 集合已超過佈建的輸送量限制。 請在伺服器指定的「稍候再試」持續時間之後重試要求。 如需詳細資訊,請參閱 要求單位
449 重試 作業發生暫時性錯誤。 此程式碼只會發生在寫入作業上。 重試作業是安全的。
500 內部伺服器錯誤 發生預期外的伺服器錯誤而導致作業失敗。 請連絡支援人員。 請參閱提出Azure 支援問題
503 服務無法使用 無法完成作業,因為服務無法使用。 這種情況可能會因為網路連線或服務可用性問題而發生。 重試作業是安全的。 若問題持續發生,請連絡支援人員。

HTTP 子狀態碼

在 Azure Cosmos DB 中使用 Customer-Managed 金鑰 (CMK) 時,如果發生任何錯誤,Azure Cosmos DB 會傳回錯誤詳細資料以及回應中的 HTTP 子狀態碼。 您可以使用這個子狀態程式碼來偵錯問題的根本原因。 Azure Cosmos DB 目前支援下列子狀態碼:

伺服器端問題的子狀態碼

Azure Cosmos DB 針對伺服器端問題支援下列子狀態碼:

子狀態程式碼 描述
4000 (無法取得/存取 Azure AD 權杖) 如果 Azure Cosmos DB 無法取得 Azure Active Directory (Azure AD) 存取權杖,就會發生此錯誤。 Azure Cosmos DB 需要此權杖才能存取金鑰保存庫。 此錯誤可能是因為網路問題或資料中心問題而發生,而且使用者無法採取動作。 建立 支援要求 以連絡 Azure Cosmos DB 小組以解決問題。
4001 (Azure AD 服務無法使用) 如果 Azure AD 服務已關閉或發生問題,就會發生此錯誤。 您可以檢查 Azure 中斷儀表板 ,以確認是否有任何現有的中斷。 這些中斷通常會在數小時內解決。 最好是連絡 Azure AD 小組,讓他們知道您看到的問題。 如果 Azure AD 小組發現沒有任何問題,請建立 支援要求 以連絡 Azure Cosmos DB 小組以解決問題。
) 無法使用 4004 (金鑰保存庫 服務 如果 Azure Cosmos DB 嘗試存取金鑰保存庫,但無法使用服務,就會發生此錯誤。 這可能是因為網路問題導致連線金鑰保存庫或服務本身可能已關閉。 您可以檢查 Azure 中斷儀表板 ,以確認是否有任何現有的中斷。 這些中斷通常會在數小時內解決。 最好是連絡金鑰保存庫小組,讓他們知道您看到的問題。 如果金鑰保存庫小組發現沒有任何問題,請建立支援要求以連絡 Azure Cosmos DB 小組以解決問題。
4007 (內部伺服器錯誤) 這是內部伺服器錯誤,如果輸入位元組不是 base64 格式,就會發生此錯誤。
4008 (金鑰保存庫 內部服務錯誤) 如果 Azure Cosmos DB 無法存取金鑰保存庫,就會發生此錯誤。 這可能是因為網路問題或金鑰保存庫服務本身已關閉。 您可以檢查 Azure 中斷儀表板 ,以確認是否有任何現有的中斷。 這些中斷通常會在數小時內解決。 最適合您連絡金鑰保存庫小組,讓他們知道您看到的問題。 如果金鑰保存庫小組發現沒有任何問題,請連絡 Azure Cosmos DB 小組以解決問題。
1013 (集合建立作業正在進行中) 如果您在建立集合時遇到逾時例外狀況,則請執行讀取作業來驗證是否已成功建立集合。 除非集合建立作業成功,否則讀取作業會擲回例外狀況。 如果讀取作業擲回狀態碼為 404 的例外狀況,而子狀態碼為 1013,表示集合建立作業仍在進行中。 重試讀取作業,直到您取得 200 或 201 狀態碼為止,這些程式碼會讓您知道已成功建立集合。

終端使用者問題的子狀態碼

Azure Cosmos DB 針對使用者所造成的問題,支援下列子狀態碼:

子狀態碼 描述
4002 (金鑰保存庫 不會授與 Azure AD 的許可權,或已停用金鑰) 如果您已從金鑰保存庫存取原則中移除 Azure Cosmos DB 身分識別,或已停用金鑰,就會發生此問題。 此問題通常是由終端使用者所造成。 如果發生此錯誤,請確定 Azure Cosmos DB 可以存取金鑰保存庫且已啟用金鑰。
找不到 4003 (金鑰) 如果從金鑰保存庫刪除金鑰,就會發生此問題。 此問題通常是由終端使用者所造成。 搭配客戶管理的金鑰使用 Azure Cosmos DB 的必要條件之一,就是金鑰保存庫已啟用虛刪除和清除保護。 這表示您可以復原已刪除的金鑰,以及還原對 Azure Cosmos DB 的存取權。
4005 (無法包裝或解除包裝金鑰) 如果金鑰保存庫無法包裝或解除包裝金鑰,就會發生此錯誤。 此問題通常是由終端使用者所造成。 此錯誤的其中一個可能原因是,因為您已輪替金鑰,所以金鑰保存庫無法使用最新的金鑰來解碼加密的 Blob。 若要解決此錯誤,請啟用任何最近停用的金鑰,並在大約一小時內加以解決。 如果問題在超過 2 小時後未解決,請將問題傳遞至 Azure Cosmos DB。
4006 (金鑰 URL 無效) 如果您已在 金鑰保存庫 URL 中包含金鑰版本,就會在布建期間發生此錯誤。 此錯誤通常是由終端使用者所造成。 若要解決此錯誤,請移除版本,然後再試一次。 例如,如果您已使用 格式 https://<KeyVaultName>.vault.azure.net/keys/<KeyName>/<KeyVersion> 的 URL,請將它更新為 https://<KeyVaultName>.vault.azure.net/keys/<KeyName>/
無法解析 4009 (金鑰保存庫 DNS 名稱) 如果無法解析金鑰保存庫 DNS 名稱,因為您使用了不正確的金鑰保存庫名稱,就會發生此錯誤。 此錯誤是由使用者所造成。 若要解決此問題,請更正金鑰保存庫名稱,然後再試一次。

另請參閱