Présentation des projets de quota

Cette page définit l'utilisation du projet de quota et la manière dont il est déterminé. En vous assurant que votre projet de quota est correctement défini, vous pouvez éviter les échecs de requêtes adressées aux API Google Cloud et les erreurs de quota inutiles.

Chaque requête envoyée à une API Google Cloud est comptabilisée dans un quota. Étant donné que les quotas sont appliqués à chaque projet, cela signifie que chaque requête nécessite un projet pour fournir un quota. Ce projet est appelé projet de quota. Il est parfois également appelé projet de facturation. Le projet de facturation et le projet de quota sont le même projet. Pour en savoir plus, consultez la section Définir le projet de quota.

Comment le projet de quota est-il déterminé ?

La façon dont le projet de quota est déterminé dépend du type d'API que vous utilisez : l'API basée sur les ressources ou l'API basée sur le client.

API basées sur des ressources

Pour les API Google Cloud basées sur les ressources, le projet qui fournit un quota pour un appel d'API est également le projet qui contient la ressource en cours d'accès. Par exemple, lorsque vous créez une instance Compute Engine, vous devez spécifier le projet pour cette nouvelle instance. Le projet contient ensuite l'instance nouvellement créée. Ensuite, si vous effectuez des opérations sur l'instance Compute Engine, le projet qui contient l'instance fournit le quota pour la requête. Cela s'applique que vous utilisiez Google Cloud CLI, REST ou des bibliothèques clientes.

Vous ne pouvez pas modifier le projet de quota utilisé par une requête vers une API basée sur des ressources. La requête utilise toujours le projet qui contient la ressource sur laquelle la requête opère.

API basées sur le client

Si une API n'est pas basée sur les ressources, il s'agit d'une API basée sur un client. Par exemple, l'API Cloud Translation est une API basée sur un client couramment utilisée.

Lorsque vous envoyez une requête à une API basée sur un client, si un projet de quota ne peut pas être identifié, la requête échoue.

Le projet de quota peut être défini de plusieurs manières. Le projet sera validé en cochant les options suivantes. L'ordre indiqué est l'ordre de priorité.

  • Projet de quota défini dans l'environnement ou dans la requête.
  • Si vous utilisez une clé API pour fournir des identifiants pour une requête, le projet associé à cette clé est utilisé comme projet de quota.
  • Si vous utilisez Google Cloud CLI pour obtenir votre jeton d'accès et que vous vous êtes authentifié auprès de gcloud CLI avec vos identifiants utilisateur, le projet partagé gcloud CLI est parfois utilisé comme projet de quota. Toutes les API basées sur le client ne relèvent pas du projet partagé.
  • Si le compte principal de l'appel d'API est un compte de service, y compris par emprunt d'identité, le projet associé au compte de service est utilisé comme projet de quota.
  • Si le compte principal de l'API est un utilisateur de fédération des identités des employés, le projet utilisateur de pools d'employés est utilisé comme projet de quota.

Si aucune des vérifications ci-dessus ne génère de projet de quota, la requête échoue.

À propos du projet partagé gcloud CLI pour les API basées sur un client

Si vous utilisez gcloud CLI pour envoyer une requête à une API basée sur un client sans définir de projet de quota, la requête peut s'appuyer sur le projet partagé de gcloud CLI ou peut échouer. Le projet partagé gcloud CLI est utilisé par toutes les requêtes de CLI gcloud dans tous les projets. Par conséquent, si de nombreuses autres requêtes gcloud CLI utilisent également ce projet comme projet de quota, le quota du projet partagé peut être épuisés temporairement. Dans ce cas, votre requête échoue avec un message d'erreur "quota épuisé".

Identifier le projet de quota actuel pour les API basées sur le client

Pour identifier le projet utilisé pour une commande gcloud CLI, incluez l'option --log-http avec la gcloud CLI pour imprimer les en-têtes de la commande. Le journal inclut le projet utilisé pour cette commande en tant que projet de quota dans le champ X-Goog-User-Project.

Déterminer si une API est basée sur des ressources ou sur un client

Il peut être difficile de déterminer le type d'API que vous utilisez. Cependant, l'activation et le quota sont appliqués de la même manière. Si un compte de service du projet A appelle une méthode de lecture dans le projet B et que l'API n'est activée sur aucun projet, le message d'erreur API not enabled indique quel projet est vérifié pour l'activation. Le projet vérifié pour l'activation est le même que celui du quota de débit.

Étapes suivantes