オファーリソース全体を置き換えるには、特定のオファーリソースに対して PUT オペレーションを実行します。 コンテナーまたはデータベースに設定できるプロビジョニングされた最大スループットと最小スループットの詳細については、「 コンテナーとデータベースでのスループットのプロビジョニング」 の記事を参照してください。
リクエスト
| メソッド | URI リクエスト | 説明 |
|---|---|---|
| 配置する | 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 にすることができます (推奨)。 |
| offerType (提供タイプ) | オプション | このプロパティは、V1 オファー バージョンでのみ適用されます。 V1 オファーの種類の場合は、S1、S2、または S3 に設定します。 ユーザー定義のパフォーマンス レベルまたはプロビジョニングされたスループット ベースのモデルには無効です。 |
| コンテンツ | 必須 | オファーに関する情報が含まれます – V2 オファーの場合、この値にはコレクションのスループットが含まれます。 |
| リソース | 必須 | 新しいコレクションを作成するとき、このプロパティはコレクションのセルフリンクに設定されます (例: dbs/pLJdAA==/colls/pLJdAOlEdgA=/)。 |
| offerResourceId | 必須 | コレクションの作成時に、このプロパティはリソース ID (コレクションの _rid ) に自動的に関連付けられます。 前の例では、コレクションの _rid は pLJdAOlEdgA= です。 |
| ID | 必須 | これは、システムによって生成されたプロパティです。 オファーリソースの ID は、作成時に自動的に生成されます。 オファーの _rid と同じ値を持ちます。 |
| _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 OK(正常に処理されました) | 置換操作は成功しました。 |
| 400 無効な要求 | JSON の本文が無効です。 中かっこや引用符の不足がないか確認してください。 |
| 401 権限がありません | Authorization または x-ms-date ヘッダーが設定されていません。 401 は、Authorization ヘッダーが無効な承認トークンに設定されている場合にも返されます。 |
| 404 見つかりません | オファーはリソースではなくなりました (つまり、リソースが削除されました)。 |
| 429 要求が多すぎます | オファーのスケールダウン操作がアイドルタイムアウト期間 (4 時間) 内に試行されるため、置換オファーが調整されます。 "x-ms-retry-after-ms response" ヘッダーを参照して、この操作を再試行する前に待機する必要がある時間を確認してください。 |
体
| プロパティ | 説明 |
|---|---|
| オファーバージョン | この値は、事前定義されたスループット レベルの場合は V1 に、ユーザー定義のスループット レベルの場合は V2 にすることができます。 |
| offerType (提供タイプ) | V1 オファーの事前定義されたパフォーマンス レベル S1、S2、または S3。 ユーザー定義のパフォーマンス レベルでは [無効] に設定されています。 |
| コンテンツ | オファーに関する情報が含まれています。 V2 オファーの場合、コレクションのスループットが含まれます。 |
| リソース | 新しいコレクションを作成するとき、このプロパティはコレクションのセルフリンクに設定されます (例: dbs/pLJdAA==/colls/pLJdAOlEdgA=/)。 |
| offerResourceId | コレクションの作成時に、このプロパティはリソース ID (コレクションの _rid ) に自動的に関連付けられます。 前の例では、コレクションの _rid は pLJdAOlEdgA= です。 |
| ID | これは、システムによって生成されたプロパティです。 オファーリソースの ID は、作成時に自動的に生成されます。 オファーの _rid と同じ値を持ちます。 |
| _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/秒を表します。
本文では、offerThroughputが定義されている content プロパティが必要ですが、この値はサービスによって無視されます。 次の例では、-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/秒をカスタム値に変更できます。
本文では、定義された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/秒) を表します。
{
"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/秒については、 自動スケーリングに関する FAQ を参照してください。
データベースまたはコンテナーで設定できる最小スループットを取得するには、オファー リソースで GET を実行します。 応答ヘッダー x-ms-cosmos-min-throughput は、システムが決定した最小スループットを示します。 これは、手動スループットを使用するリソースの RU/秒に設定できる最小値、または自動スケーリング スループットを使用するリソースの自動スケーリングの最大 RU/秒に設定できる最小値を表します。
こちらもご覧ください
- Azure Cosmos DB
- Azure Cosmos DB SQL API の
- Azure Cosmos DB SQL API SDK
- .NET サンプル から REST を する