你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
替换服务
若要替换整个产品/服务资源,请对特定的产品/服务资源执行 PUT 操作。 若要详细了解可在容器或数据库上设置的最大和最小预配吞吐量,请参阅 在容器和数据库上预配吞吐量 一文。
请求
方法 | 请求 URI | 说明 |
---|---|---|
PUT | https://{databaseaccount}.documents.azure.com/offers/{_rid-offer} |
{databaseaccount} 是在订阅下创建的 Azure Cosmos DB 帐户的名称。 {_rid-offer} 值是产品/服务系统生成的资源 ID。 |
提示
若要查找与数据库或集合关联的产品/服务_rid,请先 获取数据库 或 获取集合 ,并记下资源的_rid属性。 然后, 查询产品/服务 以查找与数据库或集合的_rid相对应的_rid产品/服务。 通常,数据库_rid长度为 8,集合_rid长度为 12,产品/服务_rid长度为 4。
标头
有关所有 Cosmos DB 请求 使用的标头,请参阅常见的 Azure Cosmos DB REST 请求标头
正文
属性 | 必选 | 说明 |
---|---|---|
offerVersion | 必需 | 对于 旧版 S1、S2 和 S3 级别, 它可以是 V1,对于 用户定义的吞吐量级别 为 V2, (建议) 。 |
offerType | 可选 | 此属性仅适用于 V1 产品/服务版本。 对于 V1 产品/服务类型,将其设置为 S1、S2 或 S3。 对于用户定义的性能级别或基于预配吞吐量的模型,它无效。 |
content | 必需 | 包含有关产品/服务的信息 - 对于 V2 产品/服务,此值包含集合的吞吐量。 |
resource | 必需 | 创建新集合时,此属性设置为集合的自链接,例如 dbs/pLJdAA==/colls/pLJdAOlEdgA=/。 |
offerResourceId | 必需 | 在创建集合期间,此属性会自动关联到资源 ID,即 集合_rid 。 在上面的示例中,集合 的_rid 为 pLJdAOlEdgA=。 |
id | 必需 | 它是系统生成的属性。 产品/服务资源的 ID 在创建时自动生成。 其值与产品 /服务的_rid 相同。 |
_摆脱 | 必需 | 它是系统生成的属性。 资源 ID (_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 响应”标头,了解重试此操作之前应等待多长时间。 |
正文
属性 | 说明 |
---|---|
offerVersion | 对于预定义的吞吐量级别,此值可以是 V1,对于用户定义的吞吐量级别,此值可以是 V2。 |
offerType | V1 产品/服务的预定义性能级别 S1、S2 或 S3。 对于用户定义的性能级别,其设置为 Invalid。 |
content | 它包含有关产品/服务的信息。 对于 V2 产品/服务,它包含集合的吞吐量。 |
resource | 创建新集合时,此属性设置为集合的自链接,例如 dbs/pLJdAA==/colls/pLJdAOlEdgA=/。 |
offerResourceId | 在创建集合期间,此属性会自动关联到资源 ID,即 集合_rid 。 在上面的示例中,集合 的_rid 为 pLJdAOlEdgA=。 |
id | 它是系统生成的属性。 产品/服务资源的 ID 在创建时自动生成。 其值与产品 /服务的_rid 相同。 |
_摆脱 | 它是系统生成的属性。 资源 ID (_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/秒) 更改为 1000 RU/秒。
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/秒) 更改为 8000 RU/秒, (缩放在 800 - 8000 RU/秒之间)
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
,需要具有 定义的 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/秒) 。 更改完成后,可以按照 示例 1 将手动 RU/秒更改为自定义值。
在正文中 content
,需要具有已定义 offerAutopilotSettings
和 maxThroughput
的属性,但服务将忽略该值。 下面我们传入 -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/秒) 。
{
"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/秒) ,请参阅 针对容器和数据库预配吞吐量 一文。 若要了解可设置的最小自动缩放最大 RU/秒,请参阅 自动缩放常见问题解答。
若要检索可在数据库或容器上设置的最小吞吐量,请对产品/服务资源执行 GET。 响应标头 x-ms-cosmos-min-throughput
表示系统确定的最小吞吐量。 这表示可为具有手动吞吐量的资源上的 RU/秒设置的最小值,或可为具有自动缩放吞吐量的资源上的自动缩放最大 RU/秒设置的最小值。