Condividi tramite


Sostituire un'offerta

Per sostituire un'intera risorsa offerta, eseguire un'operazione PUT nella risorsa offerta specifica. Per altre informazioni sulla velocità effettiva massima e minima di provisioning che può essere impostata su un contenitore o su un database, vedere l'articolo Effettuare il provisioning della velocità effettiva nei contenitori e nei database .

Richiesta

Metodo URI richiesta Descrizione
PUT https://{databaseaccount}.documents.azure.com/offers/{_rid-offer} {databaseaccount} è il nome dell'account Azure Cosmos DB creato nella sottoscrizione. Il valore {_rid-offer} è l'ID risorsa generato dal sistema dell'offerta.

Suggerimento

Per trovare la _rid dell'offerta associata a un database o a una raccolta, ottenere prima il database o GET la raccolta e prendere nota della proprietà _rid della risorsa. Eseguire quindi una query sulle offerte per trovare l'offerta di _rid corrispondente alla _rid del database o della raccolta. In genere, un database _rid è lunghezza 8, una raccolta _rid è lunghezza 12 e un'offerta _rid è lunghezza 4.

Intestazioni

Vedere Intestazioni di richiesta REST di Azure Cosmos DB comuni per le intestazioni usate da tutte le richieste di Cosmos DB

Corpo

Proprietà Obbligatoria Descrizione
offerVersion Necessario Può essere V1 per i livelli S1, S2 e S3 legacy e V2 per i livelli di velocità effettiva definiti dall'utente (consigliato).
offerType Facoltativo Questa proprietà è applicabile solo nella versione dell'offerta V1. Impostarlo su S1, S2 o S3 per i tipi di offerta V1. Non è valido per i livelli di prestazioni definiti dall'utente o per il modello basato sulla velocità effettiva con provisioning.
content Necessario Contiene informazioni sull'offerta: per le offerte V2, questo valore contiene la velocità effettiva della raccolta.
resource Necessario Quando si crea una nuova raccolta, questa proprietà viene impostata sul collegamento automatico della raccolta, ad esempio dbs/pLJdAA==/colls/pLJdAOlEdgA=/.
offerResourceId Necessario Durante la creazione di una raccolta, questa proprietà viene associata automaticamente all'ID risorsa, ovvero _rid della raccolta. Nell'esempio precedente il _rid per la raccolta è pLJdAOlEdgA=.
id Necessario È una proprietà generata dal sistema. L'ID per la risorsa offerta viene generato automaticamente quando viene creato. Ha lo stesso valore della _rid per l'offerta.
_rid Necessario È una proprietà generata dal sistema. L'ID risorsa (_rid) è un identificatore univoco che è anche gerarchico per ogni stack di risorse nel modello di risorsa. Viene usato internamente per il posizionamento e l'esplorazione dell'offerta.
{   
  "offerVersion": "V2",   
  "offerType": "Invalid",   
  "content": {   
    "offerThroughput": 4000   
  },   
  "resource": "dbs/rgkVAA==/colls/rgkVAMHcJww=/",   
  "offerResourceId": "rgkVAMHcJww=",   
  "id": "uT2L",   
  "_rid": "uT2L",   
}   
  

Risposta

Restituisce la risorsa dell'offerta aggiornata.

Intestazioni

Vedere Intestazioni di risposta REST di Azure Cosmos DB comuni per le intestazioni restituite da tutte le risposte di Cosmos DB.

Codici di stato

La seguente tabella elenca i codici di stato comuni restituiti da questa operazione. Per un elenco completo dei codici di stato, vedere Codici di stato HTTP.

Codice di stato HTTP Descrizione
200 - OK L'operazione di sostituzione è riuscita.
400 - Richiesta non valida Il corpo JSON non è valido. Controllare parentesi graffe o virgolette mancanti.
401 - Non autorizzato L'intestazione Authorization o x-ms-date non è impostata. Il codice 401 viene restituito anche quando l'intestazione Authorization è impostata su un token di autorizzazione non valido.
404 - Non trovato L'offerta non è più una risorsa, ovvero la risorsa è stata eliminata.
429 - Numero eccessivo di richieste L'offerta di sostituzione è limitata perché l'operazione di riduzione della scalabilità dell'offerta viene tentata entro il periodo di timeout inattivo, ovvero 4 ore. Fare riferimento all'intestazione "x-ms-retry-after-ms response" per vedere quanto tempo è necessario attendere prima di ripetere l'operazione.

Corpo

Proprietà Descrizione
offerVersion Questo valore può essere V1 per i livelli di velocità effettiva predefiniti e V2 per i livelli di velocità effettiva definiti dall'utente.
offerType Livelli di prestazioni predefiniti S1, S2 o S3 per le offerte V1. Impostato su Non valido per i livelli di prestazioni definiti dall'utente.
content Contiene informazioni sull'offerta. Per le offerte V2, contiene la velocità effettiva della raccolta.
resource Quando si crea una nuova raccolta, questa proprietà viene impostata sul collegamento automatico della raccolta, ad esempio dbs/pLJdAA==/colls/pLJdAOlEdgA=/.
offerResourceId Durante la creazione di una raccolta, questa proprietà viene associata automaticamente all'ID risorsa, ovvero _rid della raccolta. Nell'esempio precedente il _rid per la raccolta è pLJdAOlEdgA=.
id È una proprietà generata dal sistema. L'ID per la risorsa offerta viene generato automaticamente quando viene creato. Ha lo stesso valore della _rid per l'offerta.
_rid È una proprietà generata dal sistema. L'ID risorsa (_rid) è un identificatore univoco che è anche gerarchico per ogni stack di risorse nel modello di risorsa. Viene usato internamente per il posizionamento e l'esplorazione dell'offerta.
_Ts È una proprietà generata dal sistema. Indica il timestamp dell'ultimo aggiornamento della risorsa. Il valore è un timestamp.
_stesso Si tratta di una proprietà generata dal sistema. URI indirizzabile univoco per la risorsa.
_Etag Si tratta di una proprietà generata dal sistema che specifica l'etag della risorsa necessaria per il controllo della concorrenza ottimistica.
{  
  "offerVersion": "V2",  
  "_rid": "uT2L",
   "content": {  
    "offerThroughput": 4000
  }, 
  "resource": "dbs/rgkVAA==/colls/rgkVAMHcJww=/",  
  "offerResourceId": "rgkVAMHcJww=",  
  "id": "uT2L",  
  "_self": "offers/uT2L/"
}  
  

Esempio 1

Questo esempio illustra come modificare la velocità effettiva manuale (UR/sec) di una raccolta a 1000 UR/sec.

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="  
}  
  

Di seguito è riportata una risposta di esempio.

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  
}  
  

Esempio 2

Questo esempio illustra come modificare la velocità effettiva massima (UR/sec) di un'offerta con velocità effettiva con scalabilità automatica a 8000 UR/sec (scalabilità compresa tra 800 e 8000 UR/sec)

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"
}

Esempio 3

Questo esempio illustra come eseguire la migrazione di un'offerta con velocità effettiva manuale alla velocità effettiva di scalabilità automatica. L'intestazione x-ms-cosmos-migrate-offer-to-autopilot con valore true è obbligatoria.

Durante la migrazione, Azure Cosmos DB determina automaticamente il nuovo numero massimo di UR/sec di scalabilità automatica in base alle impostazioni correnti delle risorse. La maxThroughput proprietà nell'oggetto risposta rappresenta il numero massimo di UR/sec di scalabilità automatica predefinito impostato dal sistema.

Nel corpo la content proprietà con un definito offerThroughput è obbligatoria, ma il valore verrà ignorato dal servizio. Nell'esempio seguente viene usato -1.

Al termine della modifica, è possibile seguire l'esempio 2 per modificare il numero massimo di UR/sec di scalabilità automatica in un valore personalizzato.

Altre informazioni sulla migrazione alla scalabilità automatica.

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"
}

Di seguito è riportato un corpo di risposta di esempio.

La proprietà maxThroughput rappresenta il numero massimo di UR/sec di scalabilità automatica impostato dal sistema. La proprietà offerThroughput rappresenta le UR/s su cui il sistema è attualmente ridimensionato.

{
    "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
}

Esempio 4

Questo esempio illustra come eseguire la migrazione di un'offerta con velocità effettiva con scalabilità automatica alla velocità effettiva manuale. L'intestazione x-ms-cosmos-migrate-offer-to-manual-throughput con valore true è obbligatoria.

Durante la migrazione, Azure Cosmos DB determina automaticamente la nuova velocità effettiva manuale (UR/sec) in base alle impostazioni correnti delle risorse. Al termine della modifica, è possibile seguire l'esempio 1 per modificare le UR/sec manuali in un valore personalizzato.

Nel corpo la content proprietà con un oggetto definito offerAutopilotSettings ed maxThroughput è obbligatoria, ma il valore verrà ignorato dal servizio. Di seguito passiamo -1.

Altre informazioni sulla migrazione alla velocità effettiva manuale.

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"
}

Di seguito è riportato un corpo di risposta di esempio. La proprietà offerThroughput rappresenta la velocità effettiva manuale impostata sulla risorsa.

{
    "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
}

Commenti

Quando si modifica la velocità effettiva manuale o di scalabilità automatica in un database o in un contenitore, il sistema applica vincoli alle UR/s che possono essere impostate sulla risorsa. Per altre informazioni sulla velocità effettiva minima e massima con provisioning (UR/sec) che può essere impostata con velocità effettiva manuale, vedere l'articolo Effettuare il provisioning della velocità effettiva nei contenitori e nei database . Per informazioni sul numero massimo di UR/sec di scalabilità automatica minima che è possibile impostare, vedere le domande frequenti sulla scalabilità automatica.

Per recuperare la velocità effettiva minima che può essere impostata nel database o nel contenitore, eseguire GET sulla risorsa dell'offerta. L'intestazione x-ms-cosmos-min-throughput della risposta indica la velocità effettiva minima determinata dal sistema. Questo rappresenta il valore minimo che è possibile impostare per le UR/sec in una risorsa con velocità effettiva manuale oppure il valore minimo che è possibile impostare per il numero massimo di UR/sec di scalabilità automatica in una risorsa con velocità effettiva di scalabilità automatica.

Vedere anche