檢閱常見的回應碼

已完成

使用 Azure Cosmos DB for NoSQL 的最常見要求作業是建立、查詢或管理容器文件。 每個要求都會在作業狀態傳回 HTTP 狀態碼。 狀態碼可能會告訴我們作業是否成功。 或者,狀態碼會告訴我們要求失敗,並提供一些可能發生之錯誤的深入解析。 在本節中,我們將檢閱下列要求類型傳回的一些最常見 HTTP 狀態碼:

  • 建立文件
  • 列出文件
  • 取得文件
  • 取代文件
  • 修補文件
  • 刪除文件
  • 查詢文件

所有作業類型的通用狀態碼

儘管部分狀態碼 (如 400、403 和 404) 在不同作業類型之間共用,但其說明稍有不同,且不會列於下表中。

狀態碼 名稱 作業類型 說明
200 確定 列出、取得、取代、修補、查詢 作業成功。

建立文件

建立文件作業會在集合中建立新的文件。 其狀態碼如下:

狀態碼 作業類型 說明
201 建立時間 作業成功。
400 不正確的要求 JSON 內文無效。
403 禁止 無法完成作業,因為已達到分割的儲存上限。
409 衝突 提供給新文件的 id 已由現有資料庫採用。
413 實體太大 文件大小已超過要求中允許的文件大小。

使用 ReadFeed 列出集合中的文件

ReadFeed 可用來擷取所有文件,或只擷取集合內文件的累加變更。 其狀態碼如下:

狀態碼 作業類型 說明
400 不正確的要求 x-ms-consistency-level 中設定的覆寫比帳戶建立期間設定的覆寫強。 例如,如果一致性層級是 Session,覆寫不得為 Strong 或 Bounded。

取得文件

取得文件作業會依分割索引鍵和文件索引鍵來擷取文件。 其狀態碼如下:

狀態碼 作業類型 說明
304 未修改 由於 If-Match 標頭中指定的 eTag 值,所以未修改要求的文件。 服務傳回空白回應本文。
400 不正確的要求 x-ms-consistency-level 標頭中設定的覆寫比帳戶建立期間設定的覆寫強。 例如,如果一致性層級是 Session,覆寫不得為 Strong 或 Bounded。
404 找不到 文件不再是資源,也就是說已刪除文件。

取代文件

取代文件作業會取代文件的整份內容。 其狀態碼如下:

狀態碼 作業類型 說明
400 不正確的要求 JSON 內文無效。 檢查是否缺少大括號或引號。
404 找不到 文件不再存在,也就是說已刪除文件。
409 衝突 提供給新文件的 id 已由現有資料庫採用。
413 實體太大 文件大小已超過要求中允許的文件大小。

修補文件

修補文件作業會針對單一文件中的特定檔案/屬性,進行路徑層級更新。 其狀態碼如下:

狀態碼 作業類型 說明
400 不正確的要求 JSON 內文無效。
412 先決條件失敗 不符合指定的先決條件。

刪除文件

刪除文件作業會刪除集合中的現有文件。 其狀態碼如下:

狀態碼 作業類型 說明
204 沒有內容 刪除作業成功。
404 找不到 找不到文件。

查詢文件

您可以使用 Azure Cosmos DB SQL 查詢,查詢集合文件。 其狀態碼如下:

狀態碼 作業類型 說明
400 不正確的要求 要求是以不正確的 SQL 語法指定,或遺漏必要的標頭。

Azure Cosmos DB 要求可能傳回的其他重要狀態碼

某些失敗的狀態碼也是當作例外狀況的參考資料。 我們將在後續小節中更詳細討論其中幾個狀態碼,但下列是一些要檢閱的更常見狀態碼:

狀態碼 作業類型 說明
408 要求逾時 作業未在分配的時間內完成。 預存程序、觸發程序或 UDF (查詢內) 未在執行時間上限內完成執行時,就會傳回此狀態碼。
429 太多要求 集合已超過佈建的輸送量限制。 請在伺服器指定的「稍候再試」持續時間之後重試要求。 如需詳細資訊,請參閱要求單位。
500 內部伺服器錯誤 因未預期的服務錯誤而導致作業失敗。 請連絡支援人員。
503 服務無法使用 無法完成作業,因為服務無法使用。 此情況可能是因為網路連線或服務可用性問題而發生。 可安全重試此作業。 若問題持續發生,請連絡支援人員。