Замена предложения
Чтобы заменить весь ресурс предложения, выполните операцию PUT для конкретного ресурса предложения. Дополнительные сведения о максимальной и минимальной подготовленной пропускной способности, которую можно задать для контейнера или базы данных, см. в статье Подготовка пропускной способности для контейнеров и баз данных .
Запрос
Метод | Универсальный код ресурса (URI) запроса | Описание |
---|---|---|
PUT | https://{databaseaccount}.documents.azure.com/offers/{_rid-offer} |
{databaseaccount} — это имя учетной записи Azure Cosmos DB, созданной в рамках подписки. Значение {_rid-offer} — это созданный системой идентификатор ресурса предложения. |
Совет
Чтобы найти _rid предложения, связанного с базой данных или коллекцией, сначала необходимо получить базу данных или получить коллекцию и запишите свойство _rid ресурса. Затем запросите предложения , чтобы найти _rid-предложение, соответствующее _rid базы данных или коллекции. Обычно _rid базы данных имеет длину 8, _rid коллекции — 12, а _rid предложения — 4.
Заголовки
Заголовки, используемые всеми запросами Cosmos DB, см. в статье Общие заголовки запросов REST Azure Cosmos DB .
Текст
Свойство | Обязательно | Описание |
---|---|---|
OfferVersion | Обязательно | Это может быть версия 1 для устаревших уровней S1, S2 и S3 и V2 для уровней пропускной способности, определяемых пользователем (рекомендуется). |
offerType | Необязательно | Это свойство применимо только в версии предложения версии 1. Задайте для него значение S1, S2 или S3 для типов предложений версии 1. Он недопустим для определяемых пользователем уровней производительности или модели на основе подготовленной пропускной способности. |
content | Обязательно | Содержит сведения о предложении. Для предложений версии 2 это значение содержит пропускную способность коллекции. |
resource | Обязательно | При создании новой коллекции этому свойству присваивается самосвязь коллекции, например dbs/pLJdAA==/colls/pLJdAOlEdgA=/. |
offerResourceId | Обязательно | Во время создания коллекции это свойство автоматически связывается с идентификатором ресурса, то есть _rid коллекции. В приведенном выше примере _rid для коллекции — pLJdAOlEdgA=. |
идентификатор | Обязательно | Это свойство, созданное системой. Идентификатор ресурса предложения создается автоматически при его создании. Он имеет то же значение, что и _rid для предложения. |
_rid | Обязательно | Это свойство, созданное системой. Идентификатор ресурса (_rid) — это уникальный идентификатор, который также является иерархическим для стека ресурсов в модели ресурсов. Он используется системой для размещения предложения и перемещения по нему. |
{
"offerVersion": "V2",
"offerType": "Invalid",
"content": {
"offerThroughput": 4000
},
"resource": "dbs/rgkVAA==/colls/rgkVAMHcJww=/",
"offerResourceId": "rgkVAMHcJww=",
"id": "uT2L",
"_rid": "uT2L",
}
Ответ
Возвращает обновленный ресурс предложения.
Заголовки
Заголовки, возвращаемые всеми ответами Cosmos DB, см. в статье Общие заголовки ответов REST Azure Cosmos DB .
Коды состояния
В таблице ниже указаны стандартные коды состояния, возвращаемые этой операцией. Полный список кодов состояния см. в разделе Коды состояния HTTP.
Код состояния HTTP | Описание |
---|---|
200 ОК | Операция замены прошла успешно. |
400 — недопустимый запрос | Недопустимый текст JSON. Проверьте наличие фигурных скобок и кавычек. |
401 — недостаточно прав | Не указан заголовок Authorization или x-ms-date. Код 401 также возвращается, если для заголовка Authorization задан недопустимый маркер авторизации. |
404 — не найдено | Предложение больше не является ресурсом, то есть ресурс был удален. |
429 — слишком много запросов | Предложение замены регулируется, так как операция уменьшения масштаба предложения предпринимается в течение периода простоя, то есть 4 часа. Обратитесь к заголовку "ответ x-ms-retry-after-ms", чтобы узнать, как долго следует ждать перед повтором этой операции. |
Текст
Свойство | Описание |
---|---|
OfferVersion | Это значение может быть V1 для предварительно определенных уровней пропускной способности и V2 для уровней пропускной способности, определяемых пользователем. |
offerType | Предварительно определенные уровни производительности S1, S2 или S3 для предложений версии 1. Для определяемых пользователем уровней производительности задано значение Invalid. |
content | Он содержит сведения о предложении. Для предложений версии 2 он содержит пропускную способность коллекции. |
resource | При создании новой коллекции этому свойству присваивается самосвязь коллекции, например dbs/pLJdAA==/colls/pLJdAOlEdgA=/. |
offerResourceId | Во время создания коллекции это свойство автоматически связывается с идентификатором ресурса, то есть _rid коллекции. В приведенном выше примере _rid для коллекции — pLJdAOlEdgA=. |
идентификатор | Это свойство, созданное системой. Идентификатор ресурса предложения создается автоматически при его создании. Он имеет то же значение, что и _rid для предложения. |
_rid | Это свойство, созданное системой. Идентификатор ресурса (_rid) — это уникальный идентификатор, который также является иерархическим для стека ресурсов в модели ресурсов. Он используется системой для размещения предложения и перемещения по нему. |
_Ts | Это свойство, созданное системой. Оно представляет метку времени последнего обновления ресурса. Значение — метка времени. |
_Самостоятельно | Это свойство, созданное системой. Это уникальный адресуемый URI для ресурса. |
_etag | Это системное свойство, указывающее тег ресурса, необходимый для управления оптимистическим параллелизмом. |
{
"offerVersion": "V2",
"_rid": "uT2L",
"content": {
"offerThroughput": 4000
},
"resource": "dbs/rgkVAA==/colls/rgkVAMHcJww=/",
"offerResourceId": "rgkVAMHcJww=",
"id": "uT2L",
"_self": "offers/uT2L/"
}
Пример 1
В этом примере показано, как изменить пропускную способность коллекции вручную (ЕЗ/с) на 1000 ЕЗ/с.
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
В этом примере показано, как изменить максимальную пропускную способность (ЕЗ/с) предложения с автомасштабированием пропускной способности на 8000 ЕЗ/с (масштабирование от 800 до 8000 ЕЗ/с).
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
В этом примере показано, как перенести предложение с пропускной способностью вручную в автомасштабирование. Заголовок x-ms-cosmos-migrate-offer-to-autopilot
со значением true
является обязательным.
При миграции Azure Cosmos DB автоматически определяет новое максимальное число единиц запросов в секунду на основе текущих параметров ресурса. Свойство maxThroughput
в объекте ответа представляет максимальное значение автомасштабирования по умолчанию, заданное системой.
В теле content
свойство с определенным offerThroughput
является обязательным, но значение будет игнорироваться службой. В следующем примере используется значение -1.
После завершения изменения можно следовать примеру 2 , чтобы изменить максимальное значение автомасштабирования ЕЗ/с на пользовательское значение.
Узнайте больше о переходе на автомасштабирование.
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
представляет максимальное значение автомасштабирования ЕЗ/с, заданное системой. Свойство offerThroughput
представляет единицы запросов в секунду, до которые масштабируется система в данный момент.
{
"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
В этом примере показано, как перенести предложение с автомасштабируемой пропускной способностью в пропускную способность вручную. Заголовок x-ms-cosmos-migrate-offer-to-manual-throughput
со значением true
является обязательным.
При миграции Azure Cosmos DB автоматически определяет новую пропускную способность вручную (ЕЗ/с) на основе текущих параметров ресурса. После завершения изменения можно выполнить пример 1 , чтобы изменить ЕЗ/с вручную на пользовательское значение.
В теле 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
представляет пропускную способность вручную (ЕЗ/с), заданную для ресурса.
{
"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
}
Комментарии
При изменении ручной пропускной способности или пропускной способности автомасштабирования для базы данных или контейнера система применяет ограничения для единиц запросов в секунду, которые можно задать для ресурса. Дополнительные сведения о минимальной и максимальной подготовленной пропускной способности (ЕЗ/с), которую можно задать с помощью пропускной способности вручную, см. в статье Подготовка пропускной способности для контейнеров и баз данных . Чтобы узнать о минимальном максимальном значении автомасштабирования ЕЗ/с, см. раздел Часто задаваемые вопросы об автомасштабировании.
Чтобы получить минимальную пропускную способность, которую можно задать для базы данных или контейнера, выполните get для ресурса предложения. Заголовок x-ms-cosmos-min-throughput
ответа обозначает минимальную пропускную способность, определенную системой. Это минимальное значение, которое можно задать для ЕЗ/с для ресурса с пропускной способностью вручную, или минимальное значение, которое можно задать для максимального значения автомасштабирования ЕЗ/с для ресурса с пропускной способностью автомасштабирования.