Ce document décrit le projet de quota et la manière dont il est déterminé. Assurez-vous que votre projet de quota est correctement défini pour éviter les erreurs et les échecs de requêtes adressées aux APIs Cloud.
Vous devez spécifier un projet de quota, car chaque requête envoyée à une API Google Cloud est comptabilisée dans un quota et que les quotas sont appliqués par projet. Pour en savoir plus, consultez Définir le projet de quota.
Remarque pour les utilisateurs de gcloud CLI : le projet de quota est parfois appelé projet de facturation. En effet, l'indicateur billing_project
est prioritaire sur la propriété billing/quota_project
dans votre configuration gcloud CLI.
Comment le projet de quota est-il déterminé ?
La façon dont le projet de quota est déterminé dépend du type de méthode d'API que vous utilisez : API basée sur les ressources ou API basée sur le client. Dans de rares cas, un service peut disposer des deux types de méthodes d'API.
API basées sur des ressources
Pour les APIs 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, l'API 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.
Les requêtes peuvent échouer si vous envoyez une requête à une API basée sur un client et que le projet de quota ne peut pas être identifié. Le projet de quota peut être défini de plusieurs manières. Il est validé en cochant les options suivantes. Ils apparaissent par ordre de priorité :
Spécifié dans la requête : projet de quota spécifié dans la requête. (Lorsque vous utilisez des bibliothèques clientes, vous pouvez également utiliser des variables d'environnement dans vos requêtes.)
Clé API : si vous utilisez une clé API pour fournir des identifiants pour une requête, le projet associé à la clé API est utilisé comme projet de quota.
Identifiants Google Cloud CLI : si vous utilisez gcloud 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. Toutefois, toutes les API basées sur le client ne relèvent pas du projet partagé.
Compte de service : 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.
Fédération d'identité de personnel : si le compte principal de l'API est un utilisateur de la fédération d'identité de personnel, le projet utilisateur de pools de personnel est utilisé comme projet de quota.
Si aucune des vérifications précédentes 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é 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
La méthode d'identification du projet de quota dépend de la configuration de votre projet :
Si une méthode d'API est configurée pour utiliser une API basée sur les ressources, le projet client utilise le projet de ressource comme projet de quota.
Si un remplacement du projet utilisateur est en place, utilisez la commande
gcloud [command] --log-http
pour imprimer un journal et vérifier le projet de quota qui apparaît dans le champx-goog-user-project
.Si une clé API a été utilisée pour l'authentification, utilisez la commande
gcloud [command] --log-http
pour imprimer un journal et vérifier le projet de quota qui apparaît dans le champx-goog-api-key
.
Pour les autres configurations, le projet de quota n'apparaît pas dans les en-têtes HTTP.
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 les quotas sont appliqués de la même manière. Par exemple, 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
Découvrez comment définir le projet de quota.
En savoir plus sur les identifiants par défaut de l'application
En savoir plus sur l'authentification
Comprendre les quotas
Pour les utilisateurs de gcloud CLI :
- Pour en savoir plus sur les configurations de la gcloud CLI, consultez la documentation de référence de
gcloud config
. - Pour en savoir plus sur l'option
--billing_project
, consultez la documentation de référence de Google Cloud SDK Cloud.
- Pour en savoir plus sur les configurations de la gcloud CLI, consultez la documentation de référence de