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

Чтобы заменить весь ресурс предложения, выполните операцию PUT для конкретного ресурса предложения. Дополнительные сведения о максимальной и минимальной подготовленной пропускной способности, которую можно задать для контейнера или базы данных, см. в статье Подготовка пропускной способности в контейнерах и базах данных .

Просьба

Метод Запрос URI Описание
ПОСТАВИТЬ https://{databaseaccount}.documents.azure.com/offers/{_rid-offer} {databaseaccount} — это имя учетной записи Azure Cosmos DB, созданной в рамках подписки. Значение {_rid-offer} — это сгенерированный системой идентификатор ресурса предложения.

Подсказка

Чтобы найти _rid предложения, связанного с базой данных или коллекцией, сначала выполните команду GET для базы данных или GET для коллекции и обратите внимание на свойство _rid ресурса. Затем запросите предложения, чтобы найти _rid-предложение, соответствующее _rid базы данных или коллекции. Как правило, _rid базы данных имеет длину 8, _rid коллекции — длину 12, а _rid предложения — длину 4.

Заголовки

Заголовки, используемые всеми запросами Cosmos DB, см. в статье Общие заголовки запросов Azure Cosmos DB REST

Тело

Недвижимость Обязательно Описание
offerVersion Обязательно Это может быть V1 для устаревших уровней S1, S2 и S3 и V2 для определяемых пользователем уровней пропускной способности (рекомендуется).
offerType Необязательно Это свойство применимо только в версии предложения V1. Установите значение S1, S2 или S3 для типов предложений V1. Он недопустим для определяемых пользователем уровней производительности или модели на основе подготовленной пропускной способности.
содержание Обязательно Содержит информацию о предложении – для предложений V2 это значение содержит пропускную способность коллекции.
ресурс Обязательно При создании новой коллекции это свойство устанавливается в self-link коллекции, например, dbs/pLJdAA==/colls/pLJdAOlEdgA=/.
offerResourceId Обязательно Во время создания коллекции это свойство автоматически связывается с идентификатором ресурса, то есть _rid коллекции. В предыдущем примере _rid для коллекции — pLJdAOlEdgA=.
идентификатор Обязательно Это свойство, созданное системой. Идентификатор ресурса предложения генерируется автоматически при его создании. Он имеет такую же ценность, как и _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 OK (Запрос выполнен успешно) Операция по замене прошла успешно.
400 Недопустимый запрос Текст JSON недопустим. Проверьте отсутствие фигурных скобок или кавычки.
401 — не авторизовано Заголовок Authorization или x-ms-date не задан. Код 401 также возвращается, если в заголовке Authorization задано значение invalid authorization token.
404 Не найдено Предложение больше не является ресурсом, то есть ресурс был удален.
429 — слишком много запросов Предложение по замене регулируется, так как операция уменьшения масштаба предложения предпринимается в течение периода ожидания простоя, который составляет 4 часа. Обратитесь к заголовку "x-ms-retry-after-ms response", чтобы узнать, сколько времени следует подождать, прежде чем повторить эту операцию.

Тело

Недвижимость Описание
offerVersion Это значение может быть V1 для предопределенных уровней пропускной способности и V2 для определяемых пользователем уровней пропускной способности.
offerType Предопределенные уровни производительности S1, S2 или S3 для предложений V1. Для определенных пользователем уровней производительности установлено значение Invalid.
содержание В нем содержится информация о предложении. Для предложений V2 он содержит пропускную способность коллекции.
ресурс При создании новой коллекции это свойство устанавливается в self-link коллекции, например, dbs/pLJdAA==/colls/pLJdAOlEdgA=/.
offerResourceId Во время создания коллекции это свойство автоматически связывается с идентификатором ресурса, то есть _rid коллекции. В предыдущем примере _rid для коллекции — pLJdAOlEdgA=.
идентификатор Это свойство, созданное системой. Идентификатор ресурса предложения генерируется автоматически при его создании. Он имеет такую же ценность, как и _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 ответа обозначает минимальную пропускную способность, определенную системой. Это минимальное значение, которое можно задать для ЕЗ/с для ресурса с пропускной способностью вручную, или минимальное значение, которое можно задать для максимального значения ЕЗ/с автомасштабирования для ресурса с автомасштабированием пропускной способности.

См. также