Gestione della quota consumer

Questa pagina descrive come utilizzare l'API Service Consumer Management per visualizzare e ignorare i limiti di quota applicati ai singoli consumer del servizio.

Assicurati di acquisire familiarità con il modello della quota di servizio per comprendere meglio la terminologia utilizzata in questo tutorial.

Per la programmazione con l'API Service Infrastructure, ti consigliamo di utilizzare una delle nostre librerie client fornite. Per sperimentare l'API, puoi seguire le istruzioni in questa guida e utilizzare il comando curl per testare l'API senza configurare un ambiente di sviluppo dell'applicazione completo.

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 servizio e il tuo progetto consumer 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 su tutte le metriche applicabili 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 per le metriche applicabili al consumer, i valori per questi limiti e gli 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 nome; per controllare le impostazioni della quota solo per quella metrica, anziché per tutte le metriche, utilizza il nome nell'URL:

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

Allo stesso modo, ogni limite all'interno di una metrica ha un campo del nome; per controllare le impostazioni della quota solo per quel limite sulla metrica in questione, 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 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 per tale limite.

Per identificare un limite, utilizza prima uno dei metodi precedenti per trovare il limite quota di interesse e utilizza il campo del nome 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 un nuovo override o aggiornare un override esistente a un nuovo valore. Per concedere una quota illimitata su un limite, utilizza "-1" come valore di override.

Se la chiamata ha esito positivo, restituirà un identificatore dell'operazione, che rappresenta il lavoro in corso sul server, mentre 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:

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 è stata applicata una modifica ripetendo la chiamata get originale entro il limite specifico. Il limite ora dovrebbe avere un campo "producerOverride" aggiuntivo.

Forzare modifiche di quota elevate

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 di forza:

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

Applicazione di override della quota a livello di regione o zona

Alcuni limiti di quota vengono applicati in base alla regione o alla zona; ciò è indicato dalla presenza di /{region} o /{zone} nell'unità limite.

L'applicazione di un override a questo limite 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 della località:

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