要替換整個產品/服務資源,請對特定產品/服務資源執行 PUT作。 若要詳細瞭解可在容器或資料庫上設置的最大和最小預配輸送量,請參閱在 容器和資料庫上預配輸送量 一文。
請求
| 方法 | 請求網址識別碼 (URI) | 說明 |
|---|---|---|
| PUT | https://{databaseaccount}.documents.azure.com/offers/{_rid-offer} |
{databaseaccount} 是在訂閱下創建的 Azure Cosmos DB 帳戶的名稱。 {_rid-offer} 值是系統生成的產品/服務資源 ID。 |
小提示
若要查找與資料庫或集合關聯的產品/服務的_rid,請先 GET 資料庫 或 GET 集合, 並記下資源的 _rid 屬性。 然後, 查詢選件 以查找與資料庫或集合_rid對應的_rid選件。 通常,資料庫_rid的長度為 8,集合_rid的長度為 12,報價_rid的長度為 4。
標題
有關所有 Cosmos DB 請求使用的標頭,請參閱常見的 Azure Cosmos DB REST 請求標頭
身體
| 房產 | 為必填項目 | 說明 |
|---|---|---|
| 報價版本 | 為必填項目 | 對於傳統 S1、S2 和 S3 級別,它可以是 V1,對於使用者定義的輸送量級別,它可以是 V2(推薦)。 |
| offer類型 | 可選 | 此屬性僅適用於 V1 產品 / 服務版本。 對於 V1 產品 / 服務類型,將其設置為 S1、S2 或 S3。 它對於使用者定義的性能級別或基於輸送量的預配模型無效。 |
| 內容 | 為必填項目 | 包含有關產品/服務的資訊 - 對於 V2 產品 / 服務,此值包含集合的輸送量。 |
| 資源 | 為必填項目 | 創建新集合時,此屬性設置為集合的自連結,例如 dbs/pLJdAA==/colls/pLJdAOlEdgA=/。 |
| 提供資源ID | 為必填項目 | 在創建集合期間,此屬性會自動與資源ID(即集合的 _rid )相關聯。 在前面的示例中,集合的 _rid 為 pLJdAOlEdgA=。 |
| 識別碼 | 為必填項目 | 它是系統生成的屬性。 產品/服務資源的 ID 在創建時自動生成。 它與產品/服務的 _rid 具有相同的價值。 |
| _擺脫 | 為必填項目 | 它是系統生成的屬性。 資源識別碼 (_rid) 是資源模型上每個資源堆疊的階層式唯一標識符。 它在內部用於放置和導航選件。 |
{
"offerVersion": "V2",
"offerType": "Invalid",
"content": {
"offerThroughput": 4000
},
"resource": "dbs/rgkVAA==/colls/rgkVAMHcJww=/",
"offerResourceId": "rgkVAMHcJww=",
"id": "uT2L",
"_rid": "uT2L",
}
回應
返回更新的產品/服務資源。
標題
有關所有 Cosmos DB 回應返回的標頭,請參閱 常見的 Azure Cosmos DB REST 回應標頭 。
狀態代碼
下表列出了此作返回的常見狀態代碼。 有關狀態代碼的完整清單,請參閱 HTTP 狀態代碼。
| HTTP 狀態代碼 | 說明 |
|---|---|
| 200 確定 | 替換作成功。 |
| 400 錯誤的請求 | JSON 內文無效。 檢查是否缺少大括號或引號。 |
| 401 未經授權 | 未設置 Authorization 或 x-ms-date 標頭。 當 Authorization 標頭設置為無效的授權令牌時,也會返回 401。 |
| 404 找不到 | 產品/服務不再是資源,即資源已刪除。 |
| 429 要求太多 | 替換產品/服務受到限制,因為在空閒超時期限(即 4 小時)內嘗試了產品/服務縮減作。 請參閱「x-ms-retry-after-ms response」標頭,瞭解在重試此作之前應等待多長時間。 |
身體
| 房產 | 說明 |
|---|---|
| 報價版本 | 對於預定義的輸送量級別,此值可以是 V1,對於使用者定義的輸送量級別,此值可以是 V2。 |
| offer類型 | V1 產品/服務的預定義性能級別 S1、S2 或 S3。 對於使用者定義的性能級別,它設置為“無效”。 |
| 內容 | 它包含有關產品/服務的資訊。 對於 V2 產品 / 服務,它包含集合的輸送量。 |
| 資源 | 創建新集合時,此屬性設置為集合的自連結,例如 dbs/pLJdAA==/colls/pLJdAOlEdgA=/。 |
| 提供資源ID | 在創建集合期間,此屬性會自動與資源ID(即集合的 _rid )相關聯。 在前面的示例中,集合的 _rid 為 pLJdAOlEdgA=。 |
| 識別碼 | 它是系統生成的屬性。 產品/服務資源的 ID 在創建時自動生成。 它與產品/服務的 _rid 具有相同的價值。 |
| _擺脫 | 它是系統生成的屬性。 資源識別碼 (_rid) 是資源模型上每個資源堆疊的階層式唯一標識符。 它在內部用於放置和導航選件。 |
| _ts | 它是系統生成的屬性。 它會指定資源上次更新的時間戳。 值為時間戳。 |
| _自我 | 它是系統生成的屬性。 這是資源的唯一可尋址 URI。 |
| _etag | 它是系統生成的屬性,用於指定樂觀併發控制所需的資源 etag。 |
{
"offerVersion": "V2",
"_rid": "uT2L",
"content": {
"offerThroughput": 4000
},
"resource": "dbs/rgkVAA==/colls/rgkVAMHcJww=/",
"offerResourceId": "rgkVAMHcJww=",
"id": "uT2L",
"_self": "offers/uT2L/"
}
範例 1
此示例演示如何將集合的手動輸送量 (RU/s) 更改為 1000 RU/s。
PUT https://querydemo.documents.azure.com/offers/uT2L HTTP/1.1
x-ms-date: Tue, 29 Mar 2016 17:50:18 GMT
authorization: type%3dmaster%26ver%3d1.0%26sig%3dRdNwi9H3molMOsEoHXCUHa56N8U5eFDlfuewcSoiHgc%3d
Cache-Control: no-cache
User-Agent: contoso/1.0
x-ms-version: 2015-12-16
Accept: application/json
Host: querydemo.documents.azure.com
Content-Length: 234
Expect: 100-continue
{
"id": "uT2L",
"_rid": "uT2L",
"_self": "offers/uT2L/",
"offerVersion": "V2",
"resource": "dbs/rgkVAA==/colls/rgkVAMHcJww=/",
"content": {
"offerThroughput": 1000
},
"offerResourceId": "rgkVAMHcJww="
}
下面是一個示例回應。
HTTP/1.1 200 Ok
Cache-Control: no-store, no-cache
Pragma: no-cache
Transfer-Encoding: chunked
Content-Type: application/json
Content-Location: https://querydemo.documents.azure.com/offers/uT2L
Server: Microsoft-HTTPAPI/2.0
Strict-Transport-Security: max-age=31536000
x-ms-last-state-change-utc: Fri, 25 Mar 2016 22:54:09.213 GMT
etag: "0000a900-0000-0000-0000-56fac05a0000"
x-ms-schemaversion: 1.1
x-ms-quorum-acked-lsn: 8110
x-ms-current-write-quorum: 3
x-ms-current-replica-set-size: 4
x-ms-request-charge: 9.9
x-ms-serviceversion: version=1.6.52.5
x-ms-activity-id: fa543c39-a64e-44bd-ba9a-c4f313a9d7d4
x-ms-session-token: M:8111
x-ms-gatewayversion: version=1.6.52.5
Date: Tue, 29 Mar 2016 17:50:20 GMT
{
"offerVersion": "V2",
"_rid": "uT2L",
"content": {
"offerThroughput": 1000
},
"resource": "dbs/rgkVAA==/colls/rgkVAMHcJww=/",
"offerResourceId": "rgkVAMHcJww=",
"id": "uT2L",
"_self": "offers/uT2L/",
"_etag": "\"0000a900-0000-0000-0000-56fac05a0000\"",
"_ts": 1459273818
}
範例 2
此示例演示如何將具有自動縮放輸送量的產品/服務的最大輸送量 (RU/s) 更改為 8000 RU/s(在 800 - 8000 RU/s 之間縮放)
PUT https://querydemo.documents.azure.com/offers/uT2L HTTP/1.1
x-ms-version: 2018-12-31
x-ms-date: Thu, 23 Jul 2020 00:04:41 GMT
authorization: type%3dmaster%26ver%3d1.0%26sig%3dRdNwi9H3molMOsEoHXCUHa56N8U5eFDlfuewcSoiHgc%3d
Accept: application/json
Content-Type: application/json
User-Agent: contoso/1.0
Host: querydemo.documents.azure.com:443
Connection: keep-alive
Content-Length: 278
{
"offerVersion": "V2",
"offerType": "Invalid",
"content": {
"offerAutopilotSettings": {"maxThroughput": 8000}
},
"resource": "dbs/rgkVAA==/colls/rgkVAMHcJww=/",
"offerResourceId": "rgkVAMHcJww="
"id": "uT2L",
"_rid": "uT2L"
}
範例 3
此示例演示如何將具有手動輸送量的產品/服務遷移到自動縮放輸送量。 帶有值true的標頭x-ms-cosmos-migrate-offer-to-autopilot是必需的。
遷移時,Azure Cosmos DB 會根據當前資源設置自動確定新的自動縮放最大 RU/秒。
maxThroughput響應物件中的屬性表示系統設置的預設自動縮放最大 RU/秒。
在正文中, content 需要具有defined offerThroughput 的屬性,但服務將忽略該值。 以下示例使用 -1。
更改完成後,可以按照 示例 2 將自動縮放最大 RU/秒更改為自定義值。
PUT https://querydemo.documents.azure.com/offers/uT2L HTTP/1.1
x-ms-version: 2018-12-31
x-ms-date: Wed, 22 Jul 2020 23:33:41 GMT
authorization: type%3dmaster%26ver%3d1.0%26sig%3dRdNwi9H3molMOsEoHXCUHa56N8U5eFDlfuewcSoiHgc%3d
Accept: application/json
x-ms-cosmos-migrate-offer-to-autopilot: true
Content-Type: application/json
User-Agent: contoso/1.0
Host: querydemo.documents.azure.com
Connection: keep-alive
Content-Length: 254
{
"offerVersion": "V2",
"offerType": "Invalid",
"content": {
"offerThroughput": -1
},
"resource": "dbs/rgkVAA==/colls/rgkVAMHcJww=/",
"offerResourceId": "rgkVAMHcJww=",
"id": "uT2L",
"_rid": "uT2L"
}
下面是一個示例回應正文。
該屬性 maxThroughput 表示系統設置的自動縮放最大 RU/秒。 該屬性 offerThroughput 表示系統當前縮放到的 RU/秒。
{
"resource": "dbs/rgkVAA==/colls/rgkVAMHcJww=/",
"offerType": "Invalid",
"offerResourceId": "rgkVAMHcJww=",
"offerVersion": "V2",
"content": {
"offerThroughput": 400,
"offerIsRUPerMinuteThroughputEnabled": false,
"offerMinimumThroughputParameters": {
"maxThroughputEverProvisioned": 4000,
"maxConsumedStorageEverInKB": 0
},
"offerLastReplaceTimestamp": 1595460122,
"offerAutopilotSettings": {
"maxThroughput": 4000
}
},
"id": "uT2L",
"_rid": "uT2L",
"_self": "offers/uT2L/",
"_etag": "\"2d002059-0000-0800-0000-5f18cbf80000\"",
"_ts": 1595460600
}
範例 4
此示例演示如何將具有自動縮放輸送量的產品/服務遷移到手動輸送量。 帶有值true的標頭x-ms-cosmos-migrate-offer-to-manual-throughput是必需的。
遷移時,Azure Cosmos DB 會根據當前資源設置自動確定新的手動輸送量 (RU/s)。 更改完成後,可以按照 示例 1 將手動 RU/秒更改為自定義值。
在正文中,具有 defined offerAutopilotSettings 和 maxThroughput 的屬性是content必需的,但服務將忽略該值。 在這裡,我們傳遞 -1。
PUT https://querydemo.documents.azure.com/offers/uT2L HTTP/1.1
x-ms-version: 2018-12-31
x-ms-date: Wed, 22 Jul 2020 23:43:03 GMT
authorization: type%3dmaster%26ver%3d1.0%26sig%3dRdNwi9H3molMOsEoHXCUHa56N8U5eFDlfuewcSoiHgc%3d
Accept: application/json
x-ms-cosmos-migrate-offer-to-manual-throughput: true
Content-Type: application/json
User-Agent: contoso/1.0
Host: querydemo.documents.azure.com
Connection: keep-alive
Content-Length: 280
{
"offerVersion": "V2",
"offerType": "Invalid",
"content": {
"offerAutopilotSettings": {"maxThroughput": -1}
},
"resource": "dbs/rgkVAA==/colls/rgkVAMHcJww=/",
"offerResourceId": "rgkVAMHcJww=",
"id": "uT2L",
"_rid": "uT2L"
}
下面是一個示例回應正文。 該屬性 offerThroughput 表示在資源上設置的手動輸送量 (RU/s)。
{
"resource": "dbs/rgkVAA==/colls/rgkVAMHcJww=/",
"offerType": "Invalid",
"offerResourceId": "rgkVAMHcJww=",
"offerVersion": "V2",
"content": {
"offerThroughput": 4000,
"offerIsRUPerMinuteThroughputEnabled": false,
"offerMinimumThroughputParameters": {
"maxThroughputEverProvisioned": 4000,
"maxConsumedStorageEverInKB": 0
},
"offerLastReplaceTimestamp": 1595461384
},
"id": "uT2L",
"_rid": "uT2L",
"_self": "offers/uT2L/",
"_etag": "\"2d002359-0000-0800-0000-5f18cf080000\"",
"_ts": 1595461384
}
備註
更改資料庫或容器上的手動或自動縮放輸送量時,系統會對可在資源上設置的 RU/秒強制實施約束。 若要詳細瞭解可以使用手動輸送量設置的最小和最大預配輸送量 (RU/s),請參閱在 容器和資料庫上預配輸送量 一文。 若要瞭解可以設置的最小自動縮放最大 RU/秒,請參閱 自動縮放常見問題解答。
若要檢索可在資料庫或容器上設置的最小輸送量,請對產品/服務資源執行 GET。 回應標頭 x-ms-cosmos-min-throughput 表示系統確定的最小輸送量。 這表示可以為具有手動輸送量的資源上的 RU/秒設置的最小值,或可以為具有自動縮放輸送量的資源上的自動縮放最大 RU/秒設置的最小值。
另請參閱
- Azure Cosmos DB
- Azure Cosmos DB SQL API
- Azure Cosmos DB SQL API SDK
- 從 .NET 範例 REST