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 consumatori 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 con l'API Service Infrastructure, ti consigliamo di utilizzare una delle nostre librerie client. 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 servizio e il progetto consumer di tuo 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 per le metriche che si applicano a questo consumatore, i valori di questi limiti e eventuali sostituzioni. 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 produttore a un limite specifico per un consumatore specifico, concedendo un aumento della quota per quel limite.

Per identificare un limite, utilizza innanzitutto uno dei metodi precedenti per trovare il limite di quota di tuo interesse e utilizza il relativo campo del nome per applicare una sostituzione del produttore:

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 va a buon fine, 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"
}

Per verificare l'avanzamento dell'operazione, utilizza il relativo 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 per il limite specifico. Il limite ora dovrebbe avere un campo "producerOverride" aggiuntivo.

Forzare modifiche sostanziali alla quota

Se un'override causa una diminuzione della quota impostata superiore al 10%, la chiamata viene rifiutata come misura di sicurezza per evitare una diminuzione accidentale della quota troppo rapida. 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 sostituzioni 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"} } }'