Administrar cuotas para consumidores

Esta página describe cómo usar la API de Administración de consumidores de servicios para ver y anular los límites de cuota impuestos a los consumidores individuales de su servicio.

Asegúrate de familiarizarte con el modelo de cuota de servicio para comprender mejor la terminología que se emplea en este instructivo.

Para programar soluciones basadas la API de Service Infrastructure, le recomendamos que utilice una de nuestras bibliotecas de cliente proporcionadas. Para experimentar con la API, puedes seguir las instrucciones de esta guía y usar el comando curl para probar la API sin configurar un entorno de desarrollo de aplicaciones completo.

Muestra la cuota de servicio

Para mostrar las métricas y los límites de las cuotas de servicio, sigue estos pasos:

  1. Para usar gcurl, ejecuta el siguiente comando alias con el token de autenticación:

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

    Para obtener más información, consulta Habilita la API de Service Usage.

  2. Para ver todos los límites de cuota en todas las métricas que se aplican a un consumidor en particular, usa el siguiente método:

    gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/services/SERVICE_NAME/projects/PROJECT_ID/consumerQuotaMetrics
    

    Reemplaza lo siguiente:

    • SERVICE_NAME: El nombre de tu servicio.
    • PROJECT_ID: Es el ID del proyecto del consumidor de interés.

    Esta llamada responde con una lista de métricas definidas por el servicio, cada una con la lista de límites de esas métricas que se aplican a este consumidor, los valores de esos límites y cualquier anulación. Esta es una respuesta de ejemplo:

    {
      "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",
                }
              ]
            }
          ],
        }
      ]
    }
    
  3. Cada métrica en la respuesta tiene un campo de nombre. Para inspeccionar la configuración de cuota solo para esa métrica, en lugar de para todas las métricas, usa su nombre en la URL:

    gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/METRIC_NAME
    

    Reemplaza METRIC_NAME por el nombre completamente calificado de la métrica. Por ejemplo:

    services/myservice.appspot.com/projects/consumer-project-id/consumerQuotaMetrics/airport_requests

  4. Cada límite dentro de una métrica tiene un campo de nombre. Para inspeccionar la configuración de cuota solo para ese límite de métrica en lugar de para todos los límites de métrica o todas las métricas, usa su nombre en la URL:

    gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/LIMIT_NAME
    

    Reemplaza LIMIT_NAME por el nombre completamente calificado del límite. Por ejemplo:

    services/myservice.appspot.com/projects/consumer-project-id/consumerQuotaMetrics/airport_requests/limits/%2Fmin%2Fproject

Aplica una anulación del productor

El propietario o administrador de un servicio puede aplicar una anulación del productor a un límite específico para un consumidor específico, de modo que se otorgue un aumento de cuota en ese límite.

  1. Para identificar un límite, primero usa uno de los métodos anteriores para encontrar el límite de cuota determinado y usa su campo de nombre para aplicarle una anulación del productor:

    gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/LIMIT_NAME/producerOverrides -d '{"override": {"override_value": "12345"} }'
    

    Esta llamada se puede usar para aplicar una nueva anulación o actualizar una existente a un valor nuevo. Para otorgar una cuota ilimitada en un límite, usa "-1" como valor de anulación.

    Si la llamada se realiza correctamente, se mostrará un identificador de operación, que representa el trabajo en curso en el servidor, a medida que se propaga el cambio de cuota a los sistemas de backend:

    {
      "name": "operations/quf.92accba3-6530-4fc1-9a95-c1280d48a6b7"
    }
    
  2. Para verificar el progreso de la operación, usa su nombre:

    gcurl https://serviceconsumermanagement.googleapis.com/v1/OPERATION_NAME
    

    Cuando esta llamada responde con un mensaje que incluye "done":true, la operación finaliza. Si falla la operación, el mensaje incluye detalles del error.

    También puedes verificar si se aplicó un cambio repitiendo la llamada get original en el límite específico. Ahora, el límite debe tener un campo producerOverride adicional.

Aplicación de grandes cambios de cuota

Si una anulación ocasionaría que la cuota aplicada disminuya en más del 10%, la llamada se rechaza como medida de seguridad para evitar que la cuota se reduzca demasiado rápido por accidente. Para ignorar esta restricción, use la marca de aplicación:

gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/LIMIT_NAME/producerOverrides -d '{"override": {"override_value": "0"}, "force": true}'

Aplica anulaciones de cuotas regionales o zonales

Algunos límites de cuota se aplican por región o por zona, lo que se indica con la presencia de /{region} o /{zone} en la unidad de límite.

Cuando se aplica una anulación a un límite de este tipo, se cambia la cuota base en cada región o zona. Para cambiar la cuota de una región o zona específica, usa el campo de ubicación:

gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/LIMIT_NAME/producerOverrides -d '{"override": {"override_value": "135", "dimensions": {"region": "asia-south1"} } }'