Questa pagina descrive come utilizzare l'API Service Consumer Management per visualizzare ed eseguire l'override i limiti di quota applicati ai singoli consumer del tuo servizio.
Assicurati di acquisire familiarità con il modello di quota di servizio per comprendere meglio la terminologia utilizzata in questo tutorial.
Per programmare in base all'API Service Infrastructure, ti consigliamo di usarne una
delle nostre librerie client fornite. Per eseguire esperimenti con l'API, puoi seguire le istruzioni riportate in questa guida e utilizzare il comando curl
per testare l'API senza configurare un ambiente di sviluppo completo dell'applicazione.
Visualizzazione della quota di servizio
Ai fini di questo tutorial, utilizzeremo un progetto denominato consumer-project-id
e un servizio denominato myservice.appspot.com
. In ogni comando gcurl
, sostituisci
il tuo progetto di servizio
e consumatore di interesse.
Per utilizzare gcurl
, esegui prima il seguente comando alias
con il token di autenticazione:
alias gcurl='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'
Per ulteriori informazioni, consulta la Guida introduttiva.
Per visualizzare tutti i limiti di quota per tutte le metriche che si applicano a un determinato consumatore, utilizza il seguente metodo:
gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/services/myservice.appspot.com/projects/consumer-project-id/consumerQuotaMetrics
Questa chiamata risponde con un elenco di metriche definite dal servizio, ciascuna con l'elenco dei limiti relativi alle metriche applicabili a questo consumer, i valori per tali limiti ed eventuali override. Ecco un esempio di risposta:
{
"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",
}
]
}
],
}
]
}
Ogni metrica nella risposta ha un campo name. Per controllare le impostazioni di quota solo per quella metrica, anziché per tutte le metriche, utilizza il nome nell'URL:
gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/{name}
Analogamente, ogni limite all'interno di una metrica ha un campo di nome. Per controllare le impostazioni di quota solo per quel limite per quella metrica, anziché per tutti i limiti di una metrica o di tutte le metriche, utilizza il nome nell'URL:
gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/{name}
Applicazione di un override del producer
Il proprietario o l'amministratore di un servizio può applicare un override del producer a un limite specifico per un consumer specifico, concedendo un aumento della quota al limite.
Per identificare un limite, utilizza prima uno dei metodi sopra indicati per trovare il limite della quota di interesse, quindi utilizza il campo name per applicare un override del producer:
gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/{name}/producerOverrides -d '{"override": {"override_value": "12345"} }'
Questa chiamata può essere utilizzata per applicare una nuova sostituzione o aggiornare una sostituzione esistente con un nuovo valore. Per concedere una quota illimitata per un limite, utilizza "-1" come valore di override.
Se la chiamata ha esito positivo, verrà restituito un identificatore dell'operazione, che rappresenta il lavoro in corso sul server, man mano che la modifica della quota si propaga ai sistemi di backend:
{
"name": "operations/quf.92accba3-6530-4fc1-9a95-c1280d48a6b7"
}
Per verificare l'avanzamento dell'operazione, utilizza il nome corrispondente:
gcurl https://serviceconsumermanagement.googleapis.com/v1/{name}
Quando questa chiamata risponde con un messaggio che include "done":true, l'operazione è terminata. Se l'operazione non è riuscita, il messaggio includerà i dettagli dell'errore.
Puoi anche verificare se una modifica è stata applicata ripetendo la chiamata di ricezione originale per il limite specifico. Il limite ora dovrebbe avere un campo "producerOverride" aggiuntivo.
Forzare modifiche sostanziali alla quota
Se un override causa una riduzione della quota applicata di oltre il 10%, la chiamata viene rifiutata come misura di sicurezza per evitare di ridurre accidentalmente la quota troppo rapidamente. Per ignorare questa limitazione, utilizza il flag Force:
gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/{name}/producerOverrides -d '{"override": {"override_value": "0"}, "force": true}'
Applicazione di override delle quote a livello di regione o zona
Alcuni limiti di quota vengono applicati in base alla regione o alla zona; questo è indicato dalla presenza di /{region} o /{zone} nell'unità di limite.
L'applicazione di una sostituzione a un limite di questo tipo modifica la quota di base in ogni regione o zona. Per modificare la quota solo per una regione o una zona specifica, utilizza il campo posizione:
gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/{name}/producerOverrides -d '{"override": {"override_value": "135", "dimensions": {"region": "asia-south1"} } }'