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