In questa pagina viene descritto come configurare le quote per l'API. A un livello generale, i passaggi necessari sono:
- Aggiungere le informazioni relative alla quota al file di configurazione dell'API gRPC.
- Distribuire il file di configurazione dell'API gRPC.
- Eseguire 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:
- Cloud Endpoints configurati.
- Eseguito il deployment della configurazione di Endpoints.
- Eseguito il deployment del backend dell'API.
- Hai configurato l'API in modo da utilizzare una chiave API. Questo è necessario per consentire agli endpoint di identificare il progetto Google Cloud a cui è associata l'applicazione chiamante. Per ulteriori informazioni, consulta la sezione Condividere API protette da chiave API.
Aggiunta di una quota al file di configurazione dell'API gRPC
La procedura seguente descrive l'aggiunta delle impostazioni richieste al file di configurazione dell'API gRPC per impostare le quote. Per semplicità, in questa pagina si fa riferimento
File di configurazione dell'API gRPC come file api_config.yaml
.
Aggiungi le tre sezioni seguenti al file api_config.yaml
:
metrics
: una metrica denominata che conteggia le richieste alla tua API. Fornisci un nome che descriva il contatore. Il nome potrebbe essere una categoria, ad esempioread-requests
owrite-requests
. In alternativa, se definisci una quota per un metodo specifico, potresti voler includere il nome del metodo, ad esempioecho-api/echo_requests
.quota.limits
: rappresenta un singolo limite applicabile a una metrica denominata. Qui puoi configurare il numero consentito di richieste per una metrica che hai definito. Attualmente, solo i limiti al minuto e per progetto sono supportati.quota.metric_rules
: unmetric_rule
mappa i metodi alle metriche (many-to-many). Una richiesta a un metodo assegna 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 ciascun metodo in modo indipendente. In questo modo, consente a metodi diversi di consumare a tassi diversi dalla stessa metrica con nome. Se non hai un requisito di quota complesso, puoi impostare il costo di ogni metrica su 1.
Per configurare le quote nell'API:
- Apri il file
api_config.yaml
del progetto in un editor di testo. Aggiungi il campo
metrics
al livello superiore del file (senza rientro o nidificata), dopo il campoapis
.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 descriva il contatore delle richieste API. - Sostituisci
YOUR_METRIC_DISPLAY_NAME
con il testo visualizzato nella pagina Endpoint > Servizi > Quote per identificare la metrica. - Il campo
value_type
deve essereINT64
. - Il campo
metric_kind
deve essereDELTA
.
- Sostituisci
Aggiungi un campo
quota
allo stesso livello dimetrics
e aggiungi un campolimits
nidificate all'interno della sezionequota
.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 che descrive il limite. - Sostituisci
YOUR_METRIC_NAME
con un valore precedente definitometric.name
. - Il campo
unit
deve essere"1/min/{project}"
. Questo è l'identificatore per il limite al minuto per progetto. - Il campo
values
deve contenereSTANDARD
. - Sostituisci
VALUE_FOR_THE_LIMIT
con un valore intero. Si tratta del numero di richieste che un'applicazione associata al progetto Google Cloud di un consumer può effettuare in un minuto.
- Sostituisci
Facoltativamente, definisci metriche e limiti aggiuntivi per ogni metrica.
Aggiungi una riga
metric_rules
rientrata sottoquota
, dopo la sezionelimits
. Nella sezionemetric_rules
, associa una metrica definita in precedenza con un metodo, come segue:metric_rules: - metric_costs: YOUR_METRIC_NAME: YOUR_METRIC_COST selector: [METHODS]
- Sostituisci
YOUR_METRIC_NAME
con un valore precedente definitometric.name
. - Sostituisci
YOUR_METRIC_COST
con un numero intero. Per ogni richiesta, il contatore di richieste per la metrica viene incrementato 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
, utilizzaselector: "*"
- Per associare tutti i metodi all'interno di un'API con
metric_cost
, utilizzaselector: YOUR_API_NAME.*
- Per associare un metodo specifico in un'API a
metric_cost
usaselector: YOUR_API_NAME.YOUR_METHOD_NAME
- Per associare tutti i metodi in tutte le API con
- Sostituisci
Salva il file
api_config.yaml
.
Esempi di configurazione delle quote
I tre esempi seguenti mostrano come configurare le quote sulla tua 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 il tag
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: *
Esegui il deployment del file api_config.yaml
e dell'ESP
Affinché la quota abbia effetto, dovrai:
- Esegui il deployment del file
api_config.yaml
in Service Management, che aggiorna il configurazione in Endpoints. Per la procedura dettagliata, vedi Esegui il deployment della configurazione di Endpoints. - Esegui il deployment dell'ESP. Per la procedura dettagliata, consulta Eseguire il deployment del backend dell'API.