Compartilhar via


Substituir uma oferta

Para substituir um recurso de oferta inteiro, execute uma operação PUT no recurso de oferta específico. Para saber mais sobre a taxa de transferência provisionada máxima e mínima que pode ser definida em um contêiner ou um banco de dados, consulte o artigo Provisionar taxa de transferência em contêineres e bancos de dados .

Solicitação

Método URI da solicitação Descrição
PUT https://{databaseaccount}.documents.azure.com/offers/{_rid-offer} {databaseaccount} é o nome da conta do Azure Cosmos DB que você criou em sua assinatura. O valor {_rid-offer} é a ID de recurso gerada pelo sistema da oferta.

Dica

Para localizar o _rid da oferta associada a um banco de dados ou coleção, primeiro OBTENHA o banco de dados ou GET da coleção e anote a propriedade _rid do recurso. Em seguida, consulte as ofertas para localizar a oferta de _rid que corresponde à _rid do banco de dados ou da coleção. Normalmente, um _rid de banco de dados tem comprimento 8, uma coleção _rid tem comprimento 12 e uma oferta _rid tem comprimento 4.

Cabeçalhos

Confira Cabeçalhos comuns de solicitação REST do Azure Cosmos DB para cabeçalhos usados por todas as solicitações do Cosmos DB

Corpo

Propriedade Obrigatório Descrição
offerVersion Obrigatório Pode ser V1 para os níveis herdados de S1, S2 e S3 e V2 para níveis de taxa de transferência definidos pelo usuário (recomendado).
offerType Opcional Essa propriedade só é aplicável na versão da oferta V1. Defina-o como S1, S2 ou S3 para tipos de oferta V1. Ele é inválido para níveis de desempenho definidos pelo usuário ou modelo baseado em taxa de transferência provisionada.
content Obrigatório Contém informações sobre a oferta – para ofertas V2, esse valor contém a taxa de transferência da coleção.
recurso Obrigatório Ao criar uma nova coleção, essa propriedade é definida como o auto-link da coleção, por exemplo, dbs/pLJdAA==/colls/pLJdAOlEdgA=/.
offerResourceId Obrigatório Durante a criação de uma coleção, essa propriedade é automaticamente associada à ID do recurso, ou seja, _rid da coleção. No exemplo acima, o _rid da coleção é pLJdAOlEdgA=.
id Obrigatório É uma propriedade gerada pelo sistema. A ID do recurso de oferta é gerada automaticamente quando ele é criado. Ele tem o mesmo valor que o _rid para a oferta.
_Livrar Obrigatório É uma propriedade gerada pelo sistema. A ID do recurso (_rid) é um identificador exclusivo que também é hierárquico de acordo com a pilha de recursos no modelo de recurso. Ela é usada internamente para posicionamento e navegação da oferta.
{   
  "offerVersion": "V2",   
  "offerType": "Invalid",   
  "content": {   
    "offerThroughput": 4000   
  },   
  "resource": "dbs/rgkVAA==/colls/rgkVAMHcJww=/",   
  "offerResourceId": "rgkVAMHcJww=",   
  "id": "uT2L",   
  "_rid": "uT2L",   
}   
  

Resposta

Retorna o recurso de oferta atualizado.

Cabeçalhos

Consulte Cabeçalhos comuns de resposta REST do Azure Cosmos DB para obter cabeçalhos retornados por todas as respostas do Cosmos DB.

Códigos de status

A tabela a seguir lista os códigos de status comuns retornados por esta operação. Para obter uma lista completa de códigos de status, consulte Códigos de status HTTP.

Código de status HTTP Descrição
200 OK A operação de substituição foi bem-sucedida.
400 Solicitação Inválida O corpo JSON é inválido. Verifique por colchetes ou aspas ausentes.
401 Não Autorizado O cabeçalho de Autorização ou x-ms-date não está definido. 401 também é retornado quando o cabeçalho de Autorização for definido como um token de autorização inválido.
404 Não Encontrado A oferta não é mais um recurso, ou seja, o recurso foi excluído.
429 Número excessivo de solicitações A oferta de substituição é limitada porque a operação de redução da oferta é tentada dentro do período de tempo limite ocioso, ou seja, 4 horas. Consulte o cabeçalho "x-ms-retry-after-ms response" para ver quanto tempo você deve esperar antes de repetir essa operação.

Corpo

Propriedade Descrição
offerVersion Esse valor pode ser V1 para níveis de taxa de transferência predefinidos e V2 para níveis de taxa de transferência definidos pelo usuário.
offerType Níveis de desempenho predefinidos S1, S2 ou S3 para ofertas V1. Seu conjunto como Inválido para níveis de desempenho definidos pelo usuário.
content Ele contém informações sobre a oferta. Para ofertas V2, ela contém a taxa de transferência da coleção.
recurso Ao criar uma nova coleção, essa propriedade é definida como o auto-link da coleção, por exemplo, dbs/pLJdAA==/colls/pLJdAOlEdgA=/.
offerResourceId Durante a criação de uma coleção, essa propriedade é automaticamente associada à ID do recurso, ou seja, _rid da coleção. No exemplo acima, o _rid da coleção é pLJdAOlEdgA=.
id É uma propriedade gerada pelo sistema. A ID do recurso de oferta é gerada automaticamente quando ele é criado. Ele tem o mesmo valor que o _rid para a oferta.
_Livrar É uma propriedade gerada pelo sistema. A ID do recurso (_rid) é um identificador exclusivo que também é hierárquico de acordo com a pilha de recursos no modelo de recurso. Ela é usada internamente para posicionamento e navegação da oferta.
_Ts É uma propriedade gerada pelo sistema. Especifica o último carimbo de data/hora atualizado do recurso. O valor é um carimbo de data/hora.
_Auto É uma propriedade gerada pelo sistema. É o URI endereçável exclusivo do recurso.
_Etag É uma propriedade gerada pelo sistema que especifica a etag de recurso necessária para o controle de simultaneidade otimista.
{  
  "offerVersion": "V2",  
  "_rid": "uT2L",
   "content": {  
    "offerThroughput": 4000
  }, 
  "resource": "dbs/rgkVAA==/colls/rgkVAMHcJww=/",  
  "offerResourceId": "rgkVAMHcJww=",  
  "id": "uT2L",  
  "_self": "offers/uT2L/"
}  
  

Exemplo 1

Este exemplo mostra como alterar a taxa de transferência manual (RU/s) de uma coleção para 1000 RU/s.

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

Veja abaixo uma resposta de exemplo.

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  
}  
  

Exemplo 2

Este exemplo mostra como alterar a taxa de transferência máxima (RU/s) de uma oferta com taxa de transferência de dimensionamento automático para 8.000 RU/s (escalas entre 800 e 8.000 RU/s)

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

Exemplo 3

Este exemplo mostra como migrar uma oferta com taxa de transferência manual para a taxa de transferência de dimensionamento automático. O cabeçalho x-ms-cosmos-migrate-offer-to-autopilot com valor true é necessário.

Ao migrar, o Azure Cosmos DB determina automaticamente o novo dimensionamento automático máximo de RU/s com base nas configurações de recurso atuais. A maxThroughput propriedade no objeto de resposta representa o máximo de RU/s de dimensionamento automático padrão definido pelo sistema.

No corpo, a content propriedade com um definido offerThroughput é necessária, mas o valor será ignorado pelo serviço. O exemplo a seguir usa -1.

Depois que a alteração for concluída, você poderá seguir o Exemplo 2 para alterar o máximo de RU/s de dimensionamento automático para um valor personalizado.

Saiba mais sobre como migrar para o dimensionamento automático.

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

Abaixo está um corpo de resposta de exemplo.

A propriedade maxThroughput representa o máximo de RU/s de dimensionamento automático definido pelo sistema. A propriedade offerThroughput representa as RU/s para as qual o sistema está escalado no momento.

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

Exemplo 4

Este exemplo mostra como migrar uma oferta com taxa de transferência de dimensionamento automático para taxa de transferência manual. O cabeçalho x-ms-cosmos-migrate-offer-to-manual-throughput com valor true é necessário.

Ao migrar, o Azure Cosmos DB determina automaticamente a nova taxa de transferência manual (RU/s) com base nas configurações de recurso atuais. Depois que a alteração for concluída, você poderá seguir o Exemplo 1 para alterar as RU/s manuais para um valor personalizado.

No corpo, a content propriedade com um definido offerAutopilotSettings e maxThroughput é necessária, mas o valor será ignorado pelo serviço. Abaixo, passamos -1.

Saiba mais sobre como migrar para a taxa de transferência manual.

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

Abaixo está um corpo de resposta de exemplo. A propriedade offerThroughput representa a taxa de transferência manual (RU/s) definida no recurso.

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

Comentários

Quando você está alterando a taxa de transferência manual ou de dimensionamento automático em um banco de dados ou contêiner, o sistema impõe restrições nas RU/s que podem ser definidas no recurso. Para saber mais sobre a taxa de transferência provisionada mínima e máxima (RU/s) que pode ser definida com taxa de transferência manual, consulte o artigo Provisionar taxa de transferência em contêineres e bancos de dados . Para saber mais sobre o máximo mínimo de RU/s de dimensionamento automático que você pode definir, consulte as Perguntas frequentes sobre o dimensionamento automático.

Para recuperar a taxa de transferência mínima que pode ser definida no banco de dados ou contêiner, execute GET no recurso de oferta. O cabeçalho x-ms-cosmos-min-throughput de resposta indica a taxa de transferência mínima determinada pelo sistema. Isso representa o valor mínimo que você pode definir para as RU/s em um recurso com taxa de transferência manual ou o valor mínimo que você pode definir para o máximo de RU/s de dimensionamento automático em um recurso com taxa de transferência de dimensionamento automático.

Consulte Também