Panoramica del progetto quota

Questa pagina descrive il progetto quota e come viene determinato. Assicurati che il progetto di quota sia impostato correttamente per evitare errori e richieste non riuscite alle API Cloud.

Devi specificare un progetto di quota perché ogni richiesta a un'API Google Cloud viene conteggiata in base a una quota e perché le quote vengono applicate per progetto. Per ulteriori informazioni, consulta Come impostare il progetto di quota.

Nota per gli utenti di gcloud CLI: il progetto quota a volte viene chiamato progetto di fatturazione. Questo perché il flag billing_project ha la precedenza sulla proprietà billing/quota_project nella configurazione dellgcloud CLI

Come viene determinato il progetto di quota

Il modo in cui viene determinato il progetto di quota dipende dal tipo di metodo API che utilizzi: API basata sulle risorse o API basata sul client. In rari casi, un servizio potrebbe avere entrambi i tipi di metodi API.

API basate sulle risorse

Per le API Cloud basate sulle risorse, il progetto che fornisce la quota per una chiamata API è anche il progetto che contiene la risorsa a cui si accede. Ad esempio, quando crei un'istanza Compute Engine, devi specificare il progetto per la nuova istanza. Il progetto contiene quindi l'istanza appena creata. In un secondo momento, se esegui operazioni sull'istanza Compute Engine, il progetto che contiene l'istanza fornisce la quota per la richiesta. Ciò vale indipendentemente dal fatto che utilizzi Google Cloud CLI, l'API REST o le librerie client.

Non puoi modificare il progetto di quota utilizzato da una richiesta a un'API basata sulle risorse. La richiesta utilizza sempre il progetto che contiene la risorsa su cui opera la richiesta.

API basate sul client

Se un'API non è basata sulle risorse, è basata sul client. Ad esempio, l'API Cloud Translation è un'API basata su client di uso comune.

Le richieste possono non andare a buon fine se effettui una richiesta a un'API basata sul client e il progetto di quota non può essere identificato. Il progetto di quota può essere impostato in diversi modi e viene verificato controllando le seguenti opzioni. Vengono visualizzati nell'ordine di precedenza:

  • Specificato nella richiesta: il progetto di quota specificato nella richiesta. Quando utilizzi le librerie client, puoi utilizzare anche le variabili di ambiente nelle tue richieste.

  • Chiave API: se utilizzi una chiave API per fornire le credenziali per una richiesta, il progetto associato alla chiave API viene utilizzato come progetto di quota.

  • Credenziali Google Cloud CLI: se utilizzi gcloud CLI per ottenere il token di accesso e hai eseguito l'autenticazione a gcloud CLI con le tue credenziali utente, a volte il progetto condiviso gcloud CLI viene utilizzato come progetto quota. Tuttavia, non tutte le API basate sul client eseguono il failover sul progetto condiviso.

  • Service account: se il principal per la chiamata API è un service account, anche tramite rappresentazione, il progetto associato al service account viene utilizzato come progetto quota.

  • Federazione delle identità per la forza lavoro: se il principal per l'API è un utente della federazione delle identità per la forza lavoro, il progetto utente dei pool di forza lavoro viene utilizzato come progetto quota.

Se nessuno dei controlli precedenti produce un progetto di quota, la richiesta non va a buon fine.

Informazioni sul progetto condiviso gcloud CLI per le API basate su client

Se utilizzi gcloud CLI per effettuare una richiesta a un'API basata su client senza impostare il progetto di quota, la richiesta potrebbe ripiegare sul progetto condiviso gcloud CLI oppure potrebbe non riuscire. Il progetto condiviso gcloud CLI viene utilizzato da tutte le richieste gcloud CLI in tutti i progetti, quindi se molte altre richieste gcloud CLI utilizzano anche questo progetto come progetto di quota, la quota per il progetto condiviso potrebbe esaurirsi temporaneamente. In questo caso, la richiesta non va a buon fine e viene visualizzato un messaggio di errore relativo al superamento della quota.

Identificare il progetto di quota corrente per le API basate sul client

Il metodo per identificare il progetto di quota dipende dalla configurazione del progetto:

  • Se un metodo API è configurato per utilizzare un'API basata sulle risorse, il progetto client utilizza il progetto di risorse come progetto di quota.

  • Se è attivo un override del progetto utente, utilizza il comando gcloud [command] --log-http per stampare un log e controllare il progetto di quota visualizzato nel campo x-goog-user-project.

  • Se per l'autenticazione è stata utilizzata una chiave API, utilizza il comando gcloud [command] --log-http per stampare un log e controllare il progetto di quota visualizzato nel campo x-goog-api-key.

Per altre configurazioni, il progetto di quota non viene visualizzato nelle intestazioni HTTP.

Determinare se un'API è basata sulle risorse o sui client

Può essere difficile determinare il tipo di API che stai utilizzando. Tuttavia, l'attivazione e le quote vengono applicate allo stesso modo. Ad esempio, se un account di servizio del progetto A chiama un metodo di lettura nel progetto B e in nessuno dei due progetti è abilitata l'API, il messaggio di errore API not enabled indica quale progetto viene controllato per l'attivazione. Il progetto controllato per l'attivazione è lo stesso progetto controllato per la quota di velocità.

Passaggi successivi