Ce document explique comment observer l'application des quotas. Le système de quotas Google Distributed Cloud (GDC) sous air gap protège les services en empêchant les pics d'utilisation imprévus qui pourraient les surcharger. Pour vous aider à comprendre comment les quotas de service sont configurés et appliqués, vous pouvez utiliser le service Library Agent pour observer les comportements de quota, tels que la limitation du débit.
Le service Library Agent expose deux API :
- GetShelf : récupère les détails d'un rayon spécifique et n'est pas soumis à une limite de fréquence.
- ListShelves : récupère la liste de toutes les étagères. La limite de débit est de deux requêtes par minute.
Cette page s'adresse aux développeurs du groupe d'opérateurs d'applications, qui sont chargés de surveiller les quotas et les schémas d'utilisation de leur projet. Pour en savoir plus, consultez Audiences pour la documentation GDC sous air gap.
Avant de commencer
Avant d'interagir avec le service Library Agent, assurez-vous de disposer des autorisations appropriées et du point de terminaison du service :
Pour obtenir les autorisations nécessaires pour interagir avec le service Library Agent, demandez à l'administrateur IAM de votre projet de vous accorder le rôle Utilisateur LibraryAgent dans l'espace de noms de votre projet. Par exemple, l'administrateur IAM du projet peut associer le rôle
libraryagent-userà votre compte utilisateur dans l'espace de noms de votre projet en appliquant une ressourceRoleBinding:kubectl apply -f - <<EOF apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: libraryagent-user-binding namespace: PROJECT_NAMESPACE subjects: - kind: User name: USER_EMAIL_ADDRESS apiGroup: rbac.authorization.k8s.io roleRef: kind: Role name: libraryagent-user apiGroup: rbac.authorization.k8s.io EOFRemplacez les éléments suivants :
PROJECT_NAMESPACE: espace de noms de votre projet, tel queproject-123.USER_EMAIL_ADDRESS: adresse e-mail associée à votre identité utilisateur.
Demandez à un administrateur de plate-forme ayant accès au cluster d'administration de l'organisation et disposant du rôle Observateur DNS (
dns-monitor-mp) d'obtenir le nom DNS du service Library Agent :kubectl get dnsregistration.network.private.gdc.goog -n libraryagent-system libraryagent -o jsonpath='{.status.fqdn}'Si vous devez modifier l'enregistrement DNS, l'administrateur principal doit également disposer du rôle Débogueur DNS (
dns-debugger-mp).
Respecter les limites de quota
Pour interagir avec les API de l'agent de bibliothèque et observer la limitation du débit, procédez comme suit :
Définissez des variables d'environnement pour le nom DNS et votre jeton d'authentification :
export DNS_NAME=LIBRARY_AGENT_DNS_NAME export TOKEN="$($HOME/gdcloud auth print-identity-token --audiences=https://$DNS_NAME)"Remplacez
LIBRARY_AGENT_DNS_NAMEpar le nom DNS que vous avez obtenu précédemment.Appelez l'API
GetShelfpour extraire un rayon spécifique par son nom. Cette méthode n'est soumise à aucune limite de fréquence :curl -v -X GET \ -H "Authorization: Bearer ${TOKEN?}" \ --insecure \ https://$DNS_NAME/v1alpha1/projects/PROJECT_NAMESPACE/shelves/Shelf1Remplacez
PROJECT_NAMESPACEpar l'espace de noms de votre projet.Vous recevez une réponse
HTTP 200 OK.Appelez l'API
ListShelvespour lister toutes les étagères d'un établissement qui est reflété dans le nom DNS. Cette méthode est limitée à deux requêtes par minute :curl -v -X GET \ -H "Authorization: Bearer ${TOKEN?}" \ --insecure \ https://$DNS_NAME/v1alpha1/projects/PROJECT_NAMESPACE/shelvesRemplacez
PROJECT_NAMESPACEpar l'espace de noms de votre projet.Si vous ne dépassez pas la limite de deux demandes par minute, vous recevrez une réponse
HTTP 200 OK.Pour observer l'application des quotas, appelez l'API
ListShelvesde façon répétée jusqu'à ce que vous dépassiez la limite de débit :curl -v -X GET \ -H "Authorization: Bearer ${TOKEN?}" \ --insecure \ https://$DNS_NAME/v1alpha1/projects/PROJECT_NAMESPACE/shelvesRemplacez
PROJECT_NAMESPACEpar l'espace de noms de votre projet.Lorsque vous dépassez la limite, vous recevez une réponse
HTTP 429 Too Many Requestsindiquant que la requête a été limitée en débit par le système de quota. Le résultat ressemble à ce qui suit :* Request completely sent off < HTTP/2 429 < x-envoy-ratelimited: true < date: Thu, 24 Apr 2025 18:37:16 GMT < server: istio-envoy < x-envoy-upstream-service-time: 46 < * Connection #0 to host libraryagent.org-1.zone1.google.gdch.test left intactL'application des limites de débit n'est pas toujours précise. Il peut falloir plus de deux requêtes en une minute pour déclencher l'erreur 429.