Gestione della quota consumer

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

Assicurati di familiarizzare 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 utilizzare una delle nostre librerie client fornite. Per sperimentare con l'API, puoi seguire le istruzioni di questa guida e utilizzare il comando curl per testare l'API senza configurare un ambiente di sviluppo completo dell'applicazione.

Visualizzare la quota di servizio

Per visualizzare le metriche e i limiti delle quote di servizio, segui questi passaggi:

  1. Per utilizzare gcurl, esegui 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 saperne di più, consulta Attivare l'API Service Usage.

  2. Per visualizzare tutti i limiti di quota per tutte le metriche applicabili a un determinato consumer, utilizza il seguente metodo:

    gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/services/SERVICE_NAME/projects/PROJECT_ID/consumerQuotaMetrics
    

    Sostituisci quanto segue:

    • SERVICE_NAME: il nome del servizio.
    • PROJECT_ID: l'ID del progetto consumer di interesse.

    Questa chiamata risponde con un elenco di metriche definite dal servizio, ognuna con l'elenco dei limiti per queste metriche che si applicano a questo consumer, i valori per questi limiti e qualsiasi 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",
                }
              ]
            }
          ],
        }
      ]
    }
    
  3. Ogni metrica nella risposta ha un campo nome. Per esaminare le impostazioni delle quote solo per quella metrica, anziché per tutte le metriche, utilizza il relativo nome nell'URL:

    gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/METRIC_NAME
    

    Sostituisci METRIC_NAME con il nome completo della metrica. Ad esempio:

    services/myservice.appspot.com/projects/consumer-project-id/consumerQuotaMetrics/airport_requests

  4. Ogni limite all'interno di una metrica ha un campo nome. Per esaminare le impostazioni della quota per solo quel limite per quella metrica, anziché per tutti i limiti di una metrica o per tutte le metriche, utilizza il relativo nome nell'URL:

    gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/LIMIT_NAME
    

    Sostituisci LIMIT_NAME con il nome completo del limite. Ad esempio:

    services/myservice.appspot.com/projects/consumer-project-id/consumerQuotaMetrics/airport_requests/limits/%2Fmin%2Fproject

Applicare un override del producer

Il proprietario o l'amministratore di un servizio può applicare un override del produttore a un limite specifico per un consumer specifico, concedendo un aumento della quota per quel limite.

  1. Per identificare un limite, utilizza prima uno dei metodi precedenti per trovare la quota limite di interesse e utilizza il relativo campo del nome per applicare un override del produttore:

    gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/LIMIT_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 per un limite, utilizza "-1" come valore di override.

    Se la chiamata ha esito positivo, restituisce 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"
    }
    
  2. Per controllare l'avanzamento dell'operazione, utilizza il relativo nome:

    gcurl https://serviceconsumermanagement.googleapis.com/v1/OPERATION_NAME
    

    Quando questa chiamata risponde con un messaggio che include "done":true, l'operazione è terminata. Se l'operazione non riesce, il messaggio include i dettagli dell'errore.

    Puoi anche verificare se una modifica è stata applicata ripetendo la chiamata get originale sul limite specifico. Il limite ora deve avere un campo producerOverride aggiuntivo.

Forzare modifiche consistenti della quota

Se un override causerebbe una riduzione della quota applicata superiore al 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/LIMIT_NAME/producerOverrides -d '{"override": {"override_value": "0"}, "force": true}'

Applica gli override delle quote 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à di limite.

L'applicazione di un override 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/LIMIT_NAME/producerOverrides -d '{"override": {"override_value": "135", "dimensions": {"region": "asia-south1"} } }'