Gérer le quota du client

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 les quotas de service

Pour ce tutoriel, nous utiliserons un projet nommé consumer-project-id et un service nommé myservice.appspot.com. Dans chaque commande gcurl, remplacez les valeurs par vos propres service et projet client.

Pour utiliser gcurl, exécutez d'abord la commande alias suivante avec un jeton d'authentification:

alias gcurl='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'

Pour en savoir plus, consultez Premiers pas.

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/myservice.appspot.com/projects/consumer-project-id/consumerQuotaMetrics

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 :

{
  "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/{name}

De même, chaque 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/{name}

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 ci-dessus 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/{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 renverra un identifiant d'opération, qui représente la tâche en cours sur le serveur, à mesure que la modification de quota se propage aux systèmes principaux :

{
  "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/{name}

Lorsque cet appel répond avec un message qui inclut la valeur "done":true, l'opération est terminée. Si l'opération a échoué, 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 "producerOverride" supplé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/{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/{name}/producerOverrides -d '{"override": {"override_value": "135", "dimensions": {"region": "asia-south1"} } }'