In questa pagina viene descritto come configurare le quote per l'API. In linea generale, la procedura prevede i seguenti passaggi:
- 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 delle funzionalità fornite dalle quote, consulta Informazioni sulle quote.
Prerequisiti
Per iniziare, questa pagina presuppone che tu abbia:
- Configurato Cloud Endpoints.
- Eseguito il deployment della configurazione di Endpoints.
- Eseguito il deployment del backend dell'API.
- Configurato l'API in modo che utilizzi una chiave API. Questo è necessario affinché Endpoints identifichi il Google Cloud progetto a cui è associata l'applicazione chiamante. Per ulteriori informazioni, consulta Condividere le API protette da una chiave API.
Aggiungere una quota al file di configurazione dell'API gRPC
La seguente procedura descrive come aggiungere le impostazioni richieste al file di configurazione dell'API gRPC per configurare le quote. Per semplicità, in questa pagina il file di configurazione dell'API gRPC viene chiamato api_config.yaml.
Aggiungi le seguenti tre sezioni al file api_config.yaml:
metrics: una metrica denominata che conta le richieste all'API. Fornisci un nome che descriva il contatore. Il nome potrebbe essere una categoria, ad esempioread-requestsowrite-requests. In alternativa, se stai definendo una quota per un metodo specifico, potresti 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. Al momento sono supportati solo i limiti per progetto al minuto.quota.metric_rules: Ametric_rulemaps methods to metrics (many-to-many). Una richiesta a un metodo alloca un contatore per ciascuna delle metriche mappate. Quando associ un metodo a una metrica, devi sempre specificare un costo per la richiesta. Puoi configurare il costo di ogni metodo in modo indipendente. In questo modo, metodi diversi possono consumare a velocità diverse la stessa metrica denominata. Se non hai un requisito di quota complesso, puoi configurare il costo di ogni metrica su 1.
Per configurare le quote nell'API:
- Apri il file
api_config.yamldel progetto in un editor di testo. Aggiungi il campo
metricsal livello superiore del file (senza rientro o nidificazione), dopo il campoapis.metrics: - name: "YOUR_METRIC_NAME" display_name: "YOUR_METRIC_DISPLAY_NAME" value_type: INT64 metric_kind: DELTA`- Sostituisci
YOUR_METRIC_NAMEcon un nome che descriva il contatore delle richieste API. - Sostituisci
YOUR_METRIC_DISPLAY_NAMEcon il testo visualizzato nella pagina Endpoint > Servizi > Quote per identificare la metrica. - Il campo
value_typedeve essereINT64. - Il campo
metric_kinddeve essereDELTA.
- Sostituisci
Aggiungi un campo
quotaallo stesso livello dimetricse un campolimitsnidificato nella sezionequota.quota: limits: - name: "YOUR_LIMIT_NAME" metric: "YOUR_METRIC_NAME" unit: "1/min/{project}" values: STANDARD: VALUE_FOR_THE_LIMIT- Sostituisci
YOUR_LIMIT_NAMEcon un nome che descriva il limite. - Sostituisci
YOUR_METRIC_NAMEcon unmetric.namedefinito in precedenza. - Il campo
unitdeve essere"1/min/{project}". Questo è l'identificatore per il limite per progetto al minuto. - Il campo
valuesdeve contenereSTANDARD. - Sostituisci
VALUE_FOR_THE_LIMITcon un valore intero. Questo è il numero di richieste che un'applicazione associata a un consumer's Google Cloud progetto può effettuare in un minuto.
- Sostituisci
Facoltativamente, definisci metriche e limiti aggiuntivi per ogni metrica.
Aggiungi una riga
metric_rulescon rientro sottoquota, dopo la sezionelimits. Nella sezionemetric_rules, associa una metrica definita in precedenza a un metodo, come segue:metric_rules: - metric_costs: YOUR_METRIC_NAME: YOUR_METRIC_COST selector: [METHODS]- Sostituisci
YOUR_METRIC_NAMEcon unmetric.namedefinito in precedenza. - Sostituisci
YOUR_METRIC_COSTcon un numero intero. Per ogni richiesta, il contatore delle richieste per la 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 a
metric_cost, utilizzaselector: "*" - Per associare tutti i metodi all'interno di un'API a
metric_costutilizzaselector: YOUR_API_NAME.* - Per associare un metodo specifico all'interno di un'API a
metric_costutilizzaselector: YOUR_API_NAME.YOUR_METHOD_NAME
- Per associare tutti i metodi in tutte le API a
- Sostituisci
Salva il file
api_config.yaml.
Esempi di configurazione delle quote
I tre esempi seguenti mostrano come configurare le quote nell'API.
Il seguente esempio 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`
Il seguente esempio mostra come configurare i campi quota e limits all'interno della 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
Il seguente esempio 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: *
Eseguire il deployment del file api_config.yaml e di ESP
Affinché la quota abbia effetto, dovrai:
- Eseguire il deployment del file
api_config.yamlin Service Management, che aggiorna la configurazione in Endpoints. Per i passaggi dettagliati, consulta Eseguire il deployment della configurazione di Endpoints. - Eseguire il deployment di ESP. Per i passaggi dettagliati, consulta Eseguire il deployment del backend dell'API.