Como gerenciar cotas do consumidor

Esta página descreve como usar a API Service Consumer Management para exibir e substituir os limites de cota impostos a consumidores individuais do serviço.

Certifique-se de se familiarizar com o modelo de cota de serviço para entender melhor a terminologia usada neste tutorial.

Para programar na API Service Infrastructure, recomendamos que você use uma de nossas bibliotecas de clientes fornecidas. Para experimentar a API, você pode seguir as instruções neste guia e usar o comando curl para testar a API sem configurar um ambiente de desenvolvimento de aplicativo completo.

Como exibir a cota de serviço

Para os fins deste tutorial, usaremos um projeto chamado consumer-project-id e um serviço chamado myservice.appspot.com. Em cada comando gcurl, substitua seu próprio serviço e projeto de consumidor de interesse.

Para usar gcurl, primeiro execute o comando alias abaixo com o token de autenticação:

alias gcurl='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'

Para mais informações, consulte Primeiros passos.

Para ver todos os limites de cota em todas as métricas aplicáveis a um consumidor específico, use o seguinte método:

gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/services/myservice.appspot.com/projects/consumer-project-id/consumerQuotaMetrics

Essa chamada responde com uma lista de métricas definidas pelo serviço, cada uma com a lista de limites das métricas que se aplicam a esse consumidor, os valores desses limites e quaisquer substituições. Veja um exemplo de resposta:

{
  "metrics": [
    {
      "name": "services/myservice.appspot.com/projects/consumer-project-id/consumerQuotaMetrics/airport_requests",
      "metric": "airport_requests"
      "displayName": "Airport Requests"
      "consumerQuotaLimits": [
        {
          "name": "services/myservice.appspot.com/projects/consumer-project-id/consumerQuotaMetrics/airport_requests/limits/%2Fmin%2Fproject",
          "metric": "airport_requests",
          "unit": "1/min/{project}",
          "quotaBuckets": [
            {
              "effectiveLimit": "5",
              "defaultLimit": "5",
            }
          ]
        }
      ],
    }
  ]
}

Cada métrica na resposta possui um campo de nome. Para inspecionar as configurações de cota apenas para essa métrica, e não para todas as métricas, use o nome dela no URL:

gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/{name}

Da mesma forma, cada limite em uma métrica tem um campo de nome. Para inspecionar as configurações de cota apenas para esse limite nessa métrica, e não para todos os limites de uma métrica ou de todas as métricas, use o nome dela no URL:

gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/{name}

Como aplicar uma substituição de produtor

O proprietário ou administrador de um serviço pode aplicar uma substituição de produtor a um limite específico para um consumidor específico, concedendo um aumento de cota nesse limite.

Para identificar um limite, primeiro use um dos métodos acima para encontrar o limite de cota de interesse e, em seguida, use seu campo de nome para aplicar uma substituição de produtor nele:

gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/{name}/producerOverrides -d '{"override": {"override_value": "12345"} }'

Essa chamada pode ser usada para aplicar uma nova substituição ou atualizar uma substituição existente para um novo valor. Para conceder cota ilimitada em um limite, use "-1" como o valor de substituição.

Se a chamada for bem-sucedida, será retornado um identificador de operação, que representa o trabalho em andamento no servidor, conforme a mudança de cota se propaga para os sistemas de back-end:

{
  "name": "operations/quf.92accba3-6530-4fc1-9a95-c1280d48a6b7"
}

Para verificar o andamento da operação, use o nome dela:

gcurl https://serviceconsumermanagement.googleapis.com/v1/{name}

Quando esta chamada responder com uma mensagem que inclui "done":true, a operação estará concluída. Se a operação falhar, a mensagem incluirá detalhes do erro.

Você também pode verificar se uma alteração foi aplicada repetindo a chamada de obtenção original no limite específico. O limite agora deve ter um campo "producerOverride" adicional.

Como forçar grandes alterações de cota

Se uma substituição fizer com que a cota aplicada diminua em mais de 10%, a chamada será rejeitada, como uma medida de segurança para evitar a redução acidental da cota muito rapidamente. Para desconsiderar essa restrição, use o sinalizador de força:

gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/{name}/producerOverrides -d '{"override": {"override_value": "0"}, "force": true}'

Como aplicar substituições de cota regional ou zonal

Alguns limites de cota são impostos por região ou zona. Isso é indicado pela presença de /{region} ou /{zone} na unidade de limite.

A aplicação de uma substituição a esse limite altera a cota base em todas as regiões ou zonas. Para alterar a cota para apenas uma região ou zona específica, use o campo "local":

gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/{name}/producerOverrides -d '{"override": {"override_value": "135", "dimensions": {"region": "asia-south1"} } }'