Administrar cuotas para consumidores

Esta página describe cómo usar la API de Service Consumer Management 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, puede seguir las instrucciones de esta guía y utilizar el comando de curl para probar la API sin configurar un entorno de desarrollo de aplicaciones completo.

Muestra la cuota de servicio

Para los fines de este instructivo, usaremos un proyecto llamado consumer-project-id y un servicio llamado myservice.appspot.com. En cada comando gcurl, sustituye tu propio servicio y proyecto de consumidor de interés.

Para usar gcurl, primero ejecuta el siguiente comando alias con un 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 Cómo comenzar.

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

gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/services/myservice.appspot.com/projects/consumer-project-id/consumerQuotaMetrics

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. Aquí tenemos un ejemplo de respuesta.

{
  "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",
            }
          ]
        }
      ],
    }
  ]
}

Cada métrica en la respuesta tiene un campo de nombre; a fin de inspeccionar solo la configuración de la cuota de esa métrica, en lugar de la de todas las métricas, use su nombre en la URL:

gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/{name}

Del mismo modo, cada límite dentro de una métrica tiene un campo de nombre; para inspeccionar solo la configuración de la cuota de ese límite en esa métrica, en lugar de la correspondiente a todos los límites de una métrica o todas las métricas, use su nombre en la URL:

gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/{name}

Aplicación de 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.

Para identificar un límite, primero use uno de los métodos anteriores a fin de buscar el límite de cuota determinado y use su campo de nombre para aplicarle una anulación del productor:

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

Esta llamada se puede usar para aplicar una anulación nueva 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 se realiza correctamente la llamada, 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"
}

Para verificar el progreso de la operación, usa su nombre:

gcurl https://serviceconsumermanagement.googleapis.com/v1/{name}

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

También puede verificar si se aplicó un cambio mediante la repetición de la llamada “get” original en el límite específico. El límite ahora debería tener un campo adicional "producerOverride".

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/{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 por la presencia de /{region} o /{zone} en la unidad de límite.

Cuando se aplica una anulación al límite, 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/{name}/producerOverrides -d '{"override": {"override_value": "135", "dimensions": {"region": "asia-south1"} } }'