Imposta il progetto della quota

Questa pagina descrive come impostare un progetto delle quote per le tue API basate su client. Per informazioni sul progetto della quota, su come impostare l'API delle quote e su come viene determinato il progetto della quota, consulta Informazioni sul progetto delle quote.

Quando effettui una richiesta a un'API basata su client, se non è possibile identificare un progetto di quota, la richiesta non va a buon fine.

Il progetto di quota può essere impostato in diversi modi e il progetto verrà verificato selezionando le opzioni seguenti. L'ordine indicato è l'ordine di precedenza.

  • Il progetto di quota impostato nell'ambiente o nella richiesta.
  • Se utilizzi una chiave API per fornire le credenziali per una richiesta, il progetto associato alla chiave API viene utilizzato come progetto della quota.
  • Se utilizzi Google Cloud CLI per ottenere il token di accesso e hai eseguito l'autenticazione a gcloud CLI con le tue credenziali utente, il progetto condiviso di gcloud CLI viene talvolta utilizzato come progetto per la quota. Non tutte le API basate su client ricorrono al progetto condiviso.
  • Se l'entità per la chiamata API è un account di servizio, anche mediante furto d'identità, il progetto associato all'account di servizio viene utilizzato come progetto quota.
  • Se l'entità dell'API è un utente della federazione delle identità per la forza lavoro, il progetto utente dei pool di forza lavoro viene utilizzato come progetto della quota.

Se nessuno dei controlli precedenti restituisce un progetto di quota, la richiesta ha esito negativo.

Esistono diversi modi per impostare progetti di quota. Se il progetto di quota viene specificato con più metodi, viene applicata la seguente precedenza:

  1. In modo programmatico
  2. Variabile di ambiente
  3. Credenziali utilizzate per autenticare la richiesta

Imposta il progetto della quota in modo programmatico

Puoi impostare esplicitamente il progetto della quota nella tua applicazione. Questo metodo sostituisce tutte le altre definizioni. L'entità utilizzata per autenticare la richiesta deve disporre dell'autorizzazione richiesta per il progetto della quota specificato.

La modalità di impostazione programmatica del progetto della quota dipende dall'utilizzo di una libreria client, di gcloud CLI o di una richiesta REST.

Libreria client

Puoi impostare il valore del progetto di quota utilizzando le opzioni del client durante la creazione del client. Questo metodo è ideale se vuoi controllare il valore del progetto di quota dalla tua applicazione, indipendentemente dall'ambiente in cui è in esecuzione.

Per ulteriori informazioni sull'implementazione delle opzioni client, consulta la documentazione della libreria client.

Interfaccia a riga di comando gcloud

Puoi impostare il progetto della quota per tutti i comandi dell'interfaccia a riga di comando gcloud CLI utilizzando la proprietà billing/quota_project nella configurazione dell'interfaccia a riga di comando gcloud CLI. Puoi anche impostare il progetto della quota per un comando specifico utilizzando il flag --billing-project, che ha la precedenza sulla proprietà di configurazione.

Per maggiori informazioni sulle configurazioni dell'interfaccia a riga di comando di gcloud, consulta la pagina di riferimento di gcloud config. Per saperne di più sul flag --billing-project, consulta il riferimento sui flag globali.

Richiesta REST

Puoi specificare il progetto di quota in una richiesta REST utilizzando l'intestazione x-goog-user-project. L'entità che effettua la richiesta deve disporre delle autorizzazioni richieste per il progetto della quota.

Per ulteriori informazioni e per codice campione, consulta Impostare il progetto di quota con una richiesta REST.

Imposta il progetto della quota utilizzando una variabile di ambiente

Le librerie client per alcuni linguaggi supportano l'impostazione del progetto delle quote utilizzando una variabile di ambiente. Questo approccio può essere utile se vuoi impostare in modo diverso il progetto di quota in shell diverse o per sostituire il progetto di quota associato alla credenziale. L'entità per qualsiasi richiesta deve disporre delle autorizzazioni richieste per il progetto di quota specificato dalla variabile di ambiente.

La variabile di ambiente dipende dal linguaggio:

Lingua Variabile di ambiente
C++

GOOGLE_CLOUD_CPP_USER_PROJECT

C#

GOOGLE_CLOUD_QUOTA_PROJECT

Go

GOOGLE_CLOUD_QUOTA_PROJECT

Java

GOOGLE_CLOUD_QUOTA_PROJECT

Node.js

GOOGLE_CLOUD_QUOTA_PROJECT

Python

GOOGLE_CLOUD_QUOTA_PROJECT

PHP

GOOGLE_CLOUD_QUOTA_PROJECT

Ruby Non disponibile

Imposta il progetto della quota utilizzando le credenziali di autenticazione

Se il progetto di quota non è specificato, le librerie di autenticazione tentano di determinarlo dalle credenziali utilizzate per la richiesta. Questa procedura dipende dal tipo di credenziali utilizzate per autenticare la richiesta:

  • Account di servizio: il progetto associato all'account di servizio viene utilizzato come progetto della quota.
  • Credenziali utente: per un ambiente di sviluppo locale, Credenziali predefinite dell'applicazione trova le credenziali utente nel file ADC locale. Questo file può anche specificare un progetto di quota. Se il progetto è impostato nella configurazione dell'interfaccia a riga di comando di Google Cloud e disponi delle autorizzazioni necessarie per il progetto, il progetto di quota viene impostato per impostazione predefinita quando crei il file ADC locale. Puoi anche impostare il progetto della quota ADC utilizzando il comando auth application-default set-quota-project.
  • Chiavi API: quando utilizzi una chiave API per fornire le credenziali per una richiesta, il progetto associato alla chiave API viene utilizzato come progetto della quota.

Autorizzazioni necessarie per impostare e utilizzare il progetto della quota

Per ottenere l'autorizzazione necessaria per impostare un progetto come progetto di quota o utilizzare quel progetto di quota in una richiesta, chiedi all'amministratore di concederti il ruolo IAM Consumatore di utilizzo dei servizi (roles/serviceusage.serviceUsageConsumer) per il progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

Questo ruolo predefinito contiene l'autorizzazione serviceusage.services.use, necessaria per impostare un progetto come progetto di quota o per utilizzare quel progetto di quota in una richiesta.

Potresti anche essere in grado di ottenere questa autorizzazione con i ruoli personalizzati o altri ruoli predefiniti.

Se utilizzi un progetto che hai creato come progetto della quota, disponi delle autorizzazioni necessarie.

Per ulteriori informazioni sulle autorizzazioni, consulta Autorizzazioni per le quote.

Imposta l'utente della quota

Alcune API limitano anche il numero di richieste per utente, che è diverso dalle quote per progetto descritte nelle sezioni precedenti di questa pagina.

Per impostazione predefinita, il sistema utilizza l'entità autenticata. Se non esiste un'entità autenticata, il sistema utilizza l'indirizzo IP client.

Se devi eseguire l'override dell'utente della quota, puoi impostare il parametro quotaUser tramite i parametri di sistema dell'API Cloud. Se specifichi un valore quotaUser o X-Goog-Quota-User, per identificare il progetto della quota deve essere utilizzata una chiave API valida con restrizioni di indirizzi IP. In caso contrario, il parametro quotaUser viene ignorato.

Per saperne di più sui parametri di sistema dell'API Cloud e sulle relative definizioni, consulta la tabella delle definizioni dei parametri di sistema.

Passaggi successivi