檢閱常見的回應碼
使用 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 | 服務無法使用 | 無法完成作業,因為服務無法使用。 此情況可能是因為網路連線或服務可用性問題而發生。 可安全重試此作業。 若問題持續發生,請連絡支援人員。 |