Gestione della quota consumer

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.

Acquisisci familiarità con il modello di quota di servizio per comprendere meglio la terminologia usata in questo tutorial.

Per programmare in base all'API Service Infrastructure, ti consigliamo di usarne una delle nostre librerie client fornite. All'esperimento con l'API, puoi seguire le istruzioni di questa guida e utilizzare curl per testare l'API senza configurare un ambiente completo di sviluppo delle applicazioni.

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 questo 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 consumer, utilizza il metodo seguente:

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 nome. solo per questa metrica, anziché per tutte le metriche, utilizza il suo nome nell'URL:

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

Allo stesso modo, ogni limite all'interno di una metrica ha un campo nome. per controllare le impostazioni della quota solo per il limite relativo a 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 un nuovo override o aggiornare un override 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:

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

Quando questa chiamata risponde con un messaggio che include "done":true, l'operazione viene completata. 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 ulteriore valore "producerOverride". .

Forzare modifiche di grandi dimensioni 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 restrizione, 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 a livello di regione o di 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 su 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"} } }'