Neste documento, explicamos como observar a aplicação de cotas. O sistema de cotas com isolamento físico do Google Distributed Cloud (GDC) protege os serviços, evitando picos de uso imprevistos que podem sobrecarregar os serviços. Para entender como as cotas de serviço são configuradas e aplicadas, use o serviço do agente da biblioteca para observar comportamentos de cota, como a limitação de taxa.
O serviço Library Agent expõe duas APIs:
- GetShelf: recupera detalhes de uma seção específica e não tem limitação de taxa.
- ListShelves: recupera uma lista de todas as prateleiras e tem um limite de taxa de duas solicitações por minuto.
Esta página é destinada a desenvolvedores do grupo de operadores de aplicativos, que são responsáveis por monitorar cotas e padrões de uso do projeto. Para mais informações, consulte Públicos-alvo da documentação do GDC com isolamento físico.
Antes de começar
Antes de interagir com o serviço do agente da biblioteca, verifique se você tem as permissões corretas e o endpoint do serviço:
Para receber as permissões necessárias para interagir com o serviço Library Agent, peça ao administrador do IAM do projeto para conceder a você o papel de Usuário do LibraryAgent no namespace do projeto. Por exemplo, o administrador do IAM do projeto pode vincular o papel
libraryagent-userà sua conta de usuário no namespace do projeto aplicando um recursoRoleBinding: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 EOFSubstitua:
PROJECT_NAMESPACE: o namespace do projeto, comoproject-123.USER_EMAIL_ADDRESS: o endereço de e-mail associado à sua identidade de usuário.
Peça a um administrador da plataforma com acesso ao cluster de administrador da organização e com o papel de Monitor do DNS (
dns-monitor-mp) para obter o nome de DNS do serviço Library Agent:kubectl get dnsregistration.network.private.gdc.goog -n libraryagent-system libraryagent -o jsonpath='{.status.fqdn}'Se for necessário editar o registro de DNS, o PA também precisará ter a função de depurador de DNS (
dns-debugger-mp).
Respeitar os limites de cota
Para interagir com as APIs do agente da biblioteca e observar a limitação de taxa, siga estas etapas:
Defina variáveis de ambiente para o nome DNS e o token de autenticação:
export DNS_NAME=LIBRARY_AGENT_DNS_NAME export TOKEN="$($HOME/gdcloud auth print-identity-token --audiences=https://$DNS_NAME)"Substitua
LIBRARY_AGENT_DNS_NAMEpelo nome de DNS que você recebeu anteriormente.Chame a API
GetShelfpara buscar uma seção específica pelo nome. Esse método não tem limite de taxa:curl -v -X GET \ -H "Authorization: Bearer ${TOKEN?}" \ --insecure \ https://$DNS_NAME/v1alpha1/projects/PROJECT_NAMESPACE/shelves/Shelf1Substitua
PROJECT_NAMESPACEpelo namespace do projeto.Você vai receber uma resposta
HTTP 200 OK.Chame a API
ListShelvespara listar todas as prateleiras em um local que é refletido no nome DNS. Esse método é limitado a duas solicitações por minuto:curl -v -X GET \ -H "Authorization: Bearer ${TOKEN?}" \ --insecure \ https://$DNS_NAME/v1alpha1/projects/PROJECT_NAMESPACE/shelvesSubstitua
PROJECT_NAMESPACEpelo namespace do projeto.Se você estiver dentro do limite de duas solicitações por minuto, vai receber uma resposta
HTTP 200 OK.Para observar a aplicação da cota, chame a API
ListShelvesrepetidamente até exceder o limite de taxa:curl -v -X GET \ -H "Authorization: Bearer ${TOKEN?}" \ --insecure \ https://$DNS_NAME/v1alpha1/projects/PROJECT_NAMESPACE/shelvesSubstitua
PROJECT_NAMESPACEpelo namespace do projeto.Quando você excede o limite, recebe uma resposta
HTTP 429 Too Many Requests, indicando que a taxa da solicitação foi limitada pelo sistema de cotas. O resultado será o seguinte:* 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 intactA aplicação do limite de taxa nem sempre é precisa. Pode ser necessário mais de dois pedidos em um minuto para acionar o erro 429.