Cette page décrit comment afficher et remplacer les limites de quota appliquées aux clients individuels de votre service à l'aide de l'API Service Consumer Management.
Assurez-vous de vous familiariser avec le modèle de quota de service pour mieux comprendre la terminologie utilisée dans ce tutoriel.
Pour programmer avec l'API Service Infrastructure, nous vous recommandons d'utiliser l'une de nos bibliothèques clientes fournies. Pour tester l'API, vous pouvez suivre les instructions de ce guide et utiliser la commande curl pour effectuer vos tests sans configurer un environnement de développement d'application complet.
Afficher le quota de service
Pour afficher les métriques et les limites des quotas de service, procédez comme suit :
Pour utiliser
gcurl, exécutez la commandealiassuivante avec le jeton d'authentification :alias gcurl='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'Pour en savoir plus, consultez Activer l'API Service Usage.
Pour afficher toutes les limites de quota sur toutes les métriques qui s'appliquent à un client particulier, utilisez la méthode suivante :
gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/services/SERVICE_NAME/projects/PROJECT_ID/consumerQuotaMetricsRemplacez les éléments suivants :
SERVICE_NAME: nom de votre service.PROJECT_ID: ID du projet consommateur qui vous intéresse.
Cet appel répond par une liste de métriques définies par le service. Chacune des métriques présente la liste des limites qui s'appliquent à ce client, les valeurs de ces limites et tout remplacement effectué. Voici un exemple de réponse :
{ "metrics": [ { "name": "services/myservice.appspot.com/projects/consumer-project-id/consumerQuotaMetrics/airport_requests", "metric": "airport_requests", "displayName": "Airport Requests", "consumerQuotaLimits": [ { "name": "services/myservice.appspot.com/projects/consumer-project-id/consumerQuotaMetrics/airport_requests/limits/%2Fmin%2Fproject", "metric": "airport_requests", "unit": "1/min/{project}", "quotaBuckets": [ { "effectiveLimit": "5", "defaultLimit": "5", } ] } ], } ] }Chaque métrique de la réponse comporte un champ de nom. Pour inspecter les paramètres de quota pour cette métrique uniquement, plutôt que pour toutes les métriques, utilisez son nom dans l'URL :
gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/METRIC_NAMERemplacez
METRIC_NAMEpar le nom complet de la métrique. Exemple :services/myservice.appspot.com/projects/consumer-project-id/consumerQuotaMetrics/airport_requestsChaque limite d'une métrique donnée comporte un champ de nom. Pour inspecter les paramètres de quota uniquement pour cette limite et pour cette métrique, plutôt que pour toutes les limites d'une métrique donnée ou de toutes les métriques, utilisez son nom dans l'URL :
gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/LIMIT_NAMERemplacez
LIMIT_NAMEpar le nom complet de la limite. Exemple :services/myservice.appspot.com/projects/consumer-project-id/consumerQuotaMetrics/airport_requests/limits/%2Fmin%2Fproject
Appliquer un remplacement de producteur
Le propriétaire ou l'administrateur d'un service peut appliquer un remplacement de producteur sur une limite spécifique à un client spécifique, ce qui a pour effet d'accorder une augmentation de quota sur cette limite.
Pour identifier une limite, utilisez d'abord l'une des méthodes précédentes pour trouver la limite de quota qui vous intéresse. Ensuite, utilisez son champ de nom pour lui appliquer un remplacement de producteur :
gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/LIMIT_NAME/producerOverrides -d '{"override": {"override_value": "12345"} }'Cet appel peut être utilisé pour appliquer un nouveau remplacement ou pour modifier la valeur d'un remplacement existant. Pour accorder un quota illimité sur une limite donnée, utilisez la valeur de remplacement "-1".
Si l'appel réussit, il renvoie un identifiant d'opération, qui représente le travail en cours sur le serveur, à mesure que la modification de quota se propage aux systèmes backend :
{ "name": "operations/quf.92accba3-6530-4fc1-9a95-c1280d48a6b7" }Pour vérifier la progression de l'opération, utilisez son nom :
gcurl https://serviceconsumermanagement.googleapis.com/v1/OPERATION_NAMELorsque cet appel répond avec un message qui inclut la valeur "done":true, l'opération est terminée. Si l'opération échoue, le message inclut les détails de l'erreur.
Vous pouvez également vérifier si une modification a été appliquée en répétant l'appel get d'origine sur la limite spécifique. La limite doit maintenant comporter un champ
producerOverridesupplémentaire.
Forcer des changements de quotas importants
Si un remplacement entraîne une diminution de plus de 10 % du quota imposé, l'appel est rejeté, par mesure de sécurité. Cela évite de diminuer trop rapidement le quota accidentellement. Pour ignorer cette restriction, utilisez l'option permettant de forcer le changement :
gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/LIMIT_NAME/producerOverrides -d '{"override": {"override_value": "0"}, "force": true}'
Appliquer des remplacements de quotas régionaux ou zonaux
Certaines limites de quota sont appliquées par région ou par zone. Ceci est indiqué par la mention de /{region} ou /{zone} dans l'unité limite.
Appliquer un remplacement à une telle limite modifie le quota de base de chaque région ou zone. Pour modifier le quota d'une région ou d'une zone spécifique, utilisez le champ "location" :
gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/LIMIT_NAME/producerOverrides -d '{"override": {"override_value": "135", "dimensions": {"region": "asia-south1"} } }'