Configurazione delle quote

In questa pagina viene descritto come configurare le quote per l'API. A livello generale, i passaggi sono:

  1. Aggiungere le informazioni relative alla quota al file di configurazione dell'API gRPC.
  2. Distribuire il file di configurazione dell'API gRPC.
  3. Esegui il deployment di Extensible Service Proxy (ESP).

Per una panoramica della funzionalità fornita in base alle quote, consulta Informazioni sulle quote.

Prerequisiti

Per iniziare, questa pagina presuppone che tu abbia:

Aggiunta di una quota al file di configurazione dell'API gRPC

La procedura seguente descrive l'aggiunta delle impostazioni necessarie al file di configurazione dell'API gRPC per impostare le quote. Per semplicità, il file di configurazione dell'API gRPC in questa pagina viene chiamato file api_config.yaml.

Aggiungi le seguenti tre sezioni al file api_config.yaml:

  • metrics: una metrica denominata che conteggia le richieste alla tua API. Devi fornire un nome che descriva il contatore. Il nome può essere una categoria, ad esempio read-requests o write-requests. In alternativa, se stai definendo una quota per un metodo specifico, potresti includere il nome del metodo, ad esempio echo-api/echo_requests.

  • quota.limits: rappresenta un singolo limite applicabile su una metrica denominata. Qui puoi configurare il numero consentito di richieste per una metrica che hai definito. Attualmente sono supportati solo i limiti al minuto per progetto.

  • quota.metric_rules: un metric_rule consente di mappare i metodi alle metriche (many-to-many). Una richiesta a un metodo alloca un contatore per ciascuna delle metriche mappate. Quando associ un metodo a una metrica, specifichi sempre un costo per la richiesta. Puoi configurare il costo di ogni metodo in modo indipendente. Ciò consente a diversi metodi di utilizzare a velocità diverse rispetto alla stessa metrica con nome. Se non hai un requisito di quota complesso, puoi configurare il costo di ogni metrica su 1.

Per configurare le quote nell'API:

  1. Apri il file api_config.yaml del progetto in un editor di testo.
  2. Aggiungi il campo metrics al livello superiore del file (non rientrato o nidificato), dopo il campo apis.

    metrics:
      - name: "YOUR_METRIC_NAME"
        display_name: "YOUR_METRIC_DISPLAY_NAME"
            value_type: INT64
        metric_kind: DELTA`
    
    • Sostituisci YOUR_METRIC_NAME con un nome che descrive il contatore delle richieste dell'API.
    • Sostituisci YOUR_METRIC_DISPLAY_NAME con il testo visualizzato nella pagina Endpoint > Servizi > Quote per identificare la metrica.
    • Il campo value_type deve essere INT64.
    • Il campo metric_kind deve essere DELTA.
  3. Aggiungi un campo quota allo stesso livello di metrics e aggiungi un campo limits nidificato all'interno della sezione quota.

    quota:
      limits:
        - name: "YOUR_LIMIT_NAME"
          metric: "YOUR_METRIC_NAME"
          unit: "1/min/{project}"
          values:
            STANDARD: VALUE_FOR_THE_LIMIT
    
    • Sostituisci YOUR_LIMIT_NAME con un nome che descrive il limite.
    • Sostituisci YOUR_METRIC_NAME con un valore metric.name definito in precedenza.
    • Il campo unit deve essere "1/min/{project}". Questo è l'identificatore del limite al minuto per progetto.
    • Il campo values deve contenere STANDARD.
    • Sostituisci VALUE_FOR_THE_LIMIT con un numero intero. Questo è il numero di richieste che un'applicazione associata al progetto Google Cloud di un consumer può effettuare al minuto.
  4. Facoltativamente, definisci metriche e limiti aggiuntivi per ogni metrica.

  5. Aggiungi una riga metric_rules rientrata sotto quota, dopo la sezione limits. Nella sezione metric_rules, associa una metrica definita in precedenza a un metodo, come indicato di seguito:

    metric_rules:
      - metric_costs:
          YOUR_METRIC_NAME: YOUR_METRIC_COST
        selector: [METHODS]
    
    • Sostituisci YOUR_METRIC_NAME con un valore metric.name definito in precedenza.
    • Sostituisci YOUR_METRIC_COST con un numero intero. Per ogni richiesta, il contatore delle richieste della metrica viene incrementato del numero specificato per il costo.
    • Per il campo selector, puoi specificare una delle seguenti opzioni:

      • Per associare tutti i metodi in tutte le API con metric_cost utilizza selector: "*"
      • Per associare tutti i metodi all'interno di un'API con metric_cost utilizza selector: YOUR_API_NAME.*
      • Per associare un metodo specifico all'interno di un'API con metric_cost, utilizza selector: YOUR_API_NAME.YOUR_METHOD_NAME
  6. Salva il file api_config.yaml.

Esempi di configurazione delle quote

I tre esempi seguenti mostrano come configurare le quote nell'API.

L'esempio seguente mostra come configurare il campo metric:

metrics:
  # Define a metric for read requests.
  - name: "read-requests"
    display_name: "Read requests"
    value_type: INT64
    metric_kind: DELTA`

L'esempio seguente mostra come configurare i campi quota e limits nella sezione quota:

metrics:
  # Define a metric for read requests.
  - name: "read-requests"
    display_name: "Read requests"
    value_type: INT64
    metric_kind: DELTA
quota:
  limits:
    # Define the limit or the read-requests metric.
    - name: "read-limit"
      metric: "read-requests"
      unit: "1/min/{project}"
      values:
        STANDARD: 1000

L'esempio seguente mostra come configurare la riga metrics dopo la sezione limits:

  metrics:
    # Define a metric for read requests.
    - name: "read-requests"
      display_name: "Read requests"
      value_type: INT64
      metric_kind: DELTA
  quota:
    limits:
      # Define the limit or the read-requests metric.
      - name: "read-limit"
        metric: "read-requests"
        unit: "1/min/{project}"
        values:
          STANDARD: 1000
    metric_rules:
      - metric_costs:
          "read-requests": 1
        selector: *

Deployment del file api_config.yaml e dell'ESP

Affinché la quota abbia effetto, dovrai:

  1. Esegui il deployment del file api_config.yaml in Service Management, che aggiorna la configurazione in Endpoints. Per la procedura dettagliata, consulta Deployment della configurazione di Endpoints.
  2. Esegui il deployment dell'ESP. Per la procedura dettagliata, consulta la pagina relativa al deployment del backend dell'API.