Descripción general del proyecto de cuota

En este documento se describe el proyecto de cuota y cómo se determina. Asegúrate de que tu proyecto de cuota esté configurado correctamente para evitar errores y solicitudes fallidas a las APIs de Cloud.

Debes especificar un proyecto de cuota porque cada solicitud a una API de Google Cloud se contabiliza en una cuota y porque las cuotas se aplican por proyecto. Para obtener más información, consulta Cómo definir la cuota de un proyecto.

Nota para los usuarios de la CLI de gcloud: a veces, el proyecto de cuota se denomina proyecto de facturación. Esto se debe a que la billing_projectmarca tiene prioridad sobre la billing/quota_projectpropiedad en la configuración de la CLI de gcloud.

Cómo se determina el proyecto de cuota

La forma en que se determina el proyecto de cuota depende del tipo de método de API que utilices: API basada en recursos o API basada en clientes. En raras ocasiones, un servicio puede tener ambos tipos de métodos de API.

APIs basadas en recursos

En el caso de las APIs de Cloud basadas en recursos, el proyecto que proporciona la cuota para una llamada a la API es también el proyecto que contiene el recurso al que se accede. Por ejemplo, cuando creas una instancia de Compute Engine, debes especificar el proyecto de esa instancia. El proyecto contendrá la instancia recién creada. Más adelante, si realizas operaciones en la instancia de Compute Engine, el proyecto que contiene la instancia proporcionará la cuota de la solicitud. Esto se aplica independientemente de si usas Google Cloud CLI, la API REST o las bibliotecas de cliente.

No puedes cambiar el proyecto de cuota que usa una solicitud a una API basada en recursos. La solicitud siempre usa el proyecto que contiene el recurso en el que opera la solicitud.

APIs basadas en clientes

Si una API no está basada en recursos, se trata de una API basada en clientes. Por ejemplo, la API Cloud Translation es una API basada en cliente que se usa con frecuencia.

Las solicitudes pueden fallar si haces una solicitud a una API basada en cliente y no se puede identificar el proyecto de cuota. El proyecto de cuota se puede definir de varias formas y se verifica comprobando las siguientes opciones. Aparecen en orden de precedencia:

  • Especificado en la solicitud: el proyecto de cuota que se especificó en la solicitud. Si usas bibliotecas de cliente, también puedes usar variables de entorno en tus solicitudes.

  • Clave de API: si usas una clave de API para proporcionar credenciales para una solicitud, el proyecto asociado a la clave de API se usa como proyecto de cuota.

  • Credenciales de la CLI de Google Cloud: si usas la CLI de gcloud para obtener tu token de acceso y te has autenticado en la CLI de gcloud con tus credenciales de usuario, el proyecto compartido de la CLI de gcloud se usa a veces como proyecto de cuota. Sin embargo, no todas las APIs basadas en clientes recurren al proyecto compartido.

  • Cuenta de servicio: si la entidad de seguridad de la llamada a la API es una cuenta de servicio (incluida la suplantación de identidad), el proyecto asociado a la cuenta de servicio se utiliza como proyecto de cuota.

  • Federación de identidades de Workforce: si la entidad de seguridad de la API es un usuario de la federación de identidades de Workforce, se utiliza el proyecto de usuario del grupo de trabajo como proyecto de cuota.

Si ninguna de las comprobaciones anteriores da como resultado un proyecto de cuota, la solicitud falla.

Acerca del proyecto compartido de la CLI de gcloud para APIs basadas en clientes

Si usas la CLI de gcloud para enviar una solicitud a una API basada en clientes sin definir el proyecto de cuota, es posible que la solicitud se realice en el proyecto compartido de la CLI de gcloud o que falle. Todos los proyectos usan el proyecto compartido de la CLI de gcloud, por lo que, si muchas otras solicitudes de la CLI de gcloud también usan este proyecto como proyecto de cuota, la cuota del proyecto compartido podría agotarse temporalmente. Si esto ocurre, la solicitud fallará y se mostrará un mensaje de error de cuota superada.

Identificar el proyecto de cuota actual de las APIs basadas en clientes

El método para identificar el proyecto de cuota depende de cómo esté configurado tu proyecto:

  • Si un método de API está configurado para usar una API basada en recursos, el proyecto de cliente usa el proyecto de recurso como proyecto de cuota.

  • Si hay una anulación del proyecto de usuario, usa el comando gcloud [command] --log-http para imprimir un registro y comprueba el proyecto de cuota que aparece en el campo x-goog-user-project.

  • Si se ha usado una clave de API para la autenticación, usa el comando gcloud [command] --log-http para imprimir un registro y comprueba el proyecto de cuota que aparece en el campo x-goog-api-key.

En otras configuraciones, el proyecto de cuota no aparece en los encabezados HTTP.

Determinar si una API está basada en recursos o en clientes

Puede ser difícil determinar qué tipo de API estás usando. Sin embargo, la activación y las cuotas se aplican de la misma forma. Por ejemplo, si una cuenta de servicio del proyecto A llama a un método de lectura del proyecto B y ninguno de los dos proyectos tiene habilitada la API, el mensaje de error API not enabled indica en qué proyecto se comprueba la activación. El proyecto en el que se ha comprobado la activación es el mismo en el que se ha comprobado la cuota de frecuencia.

Siguientes pasos