Замена предложения

Чтобы заменить весь ресурс предложения, выполните операцию 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 ответа обозначает минимальную пропускную способность, определенную системой. Это минимальное значение, которое можно задать для ЕЗ/с для ресурса с пропускной способностью вручную, или минимальное значение, которое можно задать для максимального значения автомасштабирования ЕЗ/с для ресурса с пропускной способностью автомасштабирования.

См. также: