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_project
marca
tiene prioridad sobre la billing/quota_project
propiedad 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 campox-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 campox-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
Consulte cómo definir el proyecto de cuota.
Más información sobre las credenciales de aplicación predeterminadas
Consulta más información sobre la autenticación.
Información sobre las cuotas
Para los usuarios de la CLI de gcloud:
- Para obtener más información sobre las configuraciones de la CLI de gcloud, consulta la documentación de referencia de
gcloud config
. - Para obtener más información sobre la marca
--billing_project
, consulta la referencia del SDK de Google Cloud.
- Para obtener más información sobre las configuraciones de la CLI de gcloud, consulta la documentación de referencia de