Configura el proyecto de cuota

En esta página, se describe cómo configurar un proyecto de cuota para tus APIs basadas en clientes. Para obtener información sobre qué es el proyecto de cuota, cómo configurar la API de cuota y cómo se determina el proyecto de cuota, consulta Acerca del proyecto de cuota.

Cuando realizas una solicitud a una API basada en clientes, si no se puede identificar un proyecto de cuota, la solicitud falla.

El proyecto de cuota se puede configurar de varias maneras, y el proyecto se verificará si marcas las siguientes opciones. El orden de la lista es el orden de prioridad.

  • El proyecto de cuota configurado en el entorno o en la solicitud.
  • Si usas una clave de API para proporcionar credenciales para una solicitud, el proyecto asociado con la clave de API se usa como proyecto de cuota.
  • Si usas Google Cloud CLI para obtener tu token de acceso y te autenticaste en la CLI de gcloud con tus credenciales de usuario, el proyecto compartido de la CLI de gcloud se usa como proyecto de cuota. No todas las APIs basadas en clientes usan el proyecto compartido.
  • Si la principal de la llamada a la API es una cuenta de servicio, incluido el uso de identidad, el proyecto asociado a la cuenta de servicio se usa como proyecto de cuota.
  • Si el principal de la API es un usuario de la federación de identidades de personal, el proyecto de usuario de grupos de personal se usa como proyecto de cuota.

Si ninguna de las verificaciones anteriores genera un proyecto de cuota, la solicitud falla.

Existen varias formas de configurar proyectos de cuotas. Si más de un método especifica el proyecto de cuota, se aplica la siguiente prioridad:

  1. De manera programática
  2. Variable de entorno
  3. Credenciales usadas para autenticar la solicitud

Configura el proyecto de cuota de manera programática

Puedes configurar de manera explícita el proyecto de cuota en tu aplicación. Este método anula todas las demás definiciones. La principal que se usa para autenticar la solicitud debe tener el permiso requerido en el proyecto de cuota especificado.

La forma en que configuras el proyecto de cuota de manera programática depende de si usas una biblioteca cliente, gcloud CLI o una solicitud de REST.

Biblioteca cliente

Puedes configurar el valor para el proyecto de cuota con las opciones del cliente cuando creas el cliente. Este método funciona bien si deseas controlar el valor del proyecto de cuota desde tu aplicación, sin importar el entorno en el que se ejecute.

Para obtener más información sobre la implementación de opciones de cliente, consulta la documentación de tu biblioteca cliente.

CLI de gcloud

Puedes configurar el proyecto de cuota para todos los comandos de gcloud CLI mediante la propiedad billing/quota_project en la configuración de gcloud CLI. También puedes configurar el proyecto de cuota para un comando específico mediante la marca --billing-project, que tiene prioridad sobre la propiedad de configuración.

Para obtener más información sobre las opciones de configuración de gcloud CLI, consulta la página de referencia de la configuración de gcloud. Para obtener más información sobre la marca --billing-project, consulta la referencia de marcas globales.

Solicitud de REST

Puedes especificar el proyecto de cuota en una solicitud de REST mediante el encabezado x-goog-user-project. La cuenta principal que realiza la solicitud debe tener los permisos necesarios en el proyecto de cuota.

Para obtener más información y el código de muestra, consulta Configura el proyecto de cuota con una solicitud de REST.

Configura el proyecto de cuota con una variable de entorno

Las bibliotecas cliente para algunos lenguajes admiten la configuración del proyecto de cuota con una variable de entorno. Este enfoque puede ser útil si deseas configurar el proyecto de cuota de manera diferente en diferentes shells o anular el proyecto de cuota asociado con la credencial. La principal de cualquier solicitud debe tener los permisos necesarios en el proyecto de cuota especificado por la variable de entorno.

La variable de entorno depende del lenguaje:

Lenguaje Variable de entorno
C++

GOOGLE_CLOUD_CPP_USER_PROJECT

C#

GOOGLE_CLOUD_QUOTA_PROJECT

Go

GOOGLE_CLOUD_QUOTA_PROJECT

Java

GOOGLE_CLOUD_QUOTA_PROJECT

Node.js

GOOGLE_CLOUD_QUOTA_PROJECT

Python

GOOGLE_CLOUD_QUOTA_PROJECT

PHP

GOOGLE_CLOUD_QUOTA_PROJECT

Ruby No disponible

Configura el proyecto de cuota con credenciales de autenticación

Si no se especifica el proyecto de cuota, las bibliotecas de autenticación intentan determinarlo a partir de las credenciales que se usaron para la solicitud. Este proceso depende del tipo de credenciales que se usaron para autenticar la solicitud:

  • Cuenta de servicio: El proyecto asociado con la cuenta de servicio se usa como proyecto de cuota.
  • Credenciales de usuario: Para un entorno de desarrollo local, las credenciales predeterminadas de la aplicación encuentran tus credenciales de usuario desde el archivo de ADC local. Ese archivo también puede especificar un proyecto de cuota. Si tienes el proyecto configurado en tu configuración de Google Cloud CLI y tienes los permisos necesarios en ese proyecto, el proyecto de cuota se configura de forma predeterminada cuando creas el archivo de ADC local. También puedes configurar el proyecto de cuota de ADC con el comando auth application-default set-quota-project.
  • Claves de API: Cuando usas una clave de API para proporcionar credenciales para una solicitud, el proyecto asociado con la clave de API se usa como proyecto de cuota.

Permiso necesario para configurar y usar el proyecto de cuota

Para obtener el permiso que necesitas para establecer un proyecto como el proyecto de cuota o usar ese proyecto de cuota en una solicitud, pídele a tu administrador que te otorgue el rol de IAM Consumidor de Service Usage (roles/serviceusage.serviceUsageConsumer) en el proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso.

Este rol predefinido contiene el permiso serviceusage.services.use, que es necesario para establecer un proyecto como el proyecto de cuota o usar ese proyecto de cuota en una solicitud.

También puedes obtener este permiso con roles personalizados o con otros roles predefinidos.

Si usas un proyecto que creaste como tu proyecto de cuota, tienes los permisos necesarios.

Para obtener más información sobre los permisos, consulta Permisos de cuota.

Configura el usuario de cuota

Algunas API también limitan la cantidad de solicitudes por usuario, lo cual difiere de las cuotas por proyecto descritas en las secciones anteriores de esta página.

De forma predeterminada, el sistema usa la principal autenticada. Si no hay una principal autenticada, el sistema usa la dirección IP de cliente.

Si necesitas anular el usuario de cuota, puedes configurar el parámetro quotaUser a través de los Parámetros del sistema de la API de Cloud. Si especificas quotaUser o X-Goog-Quota-User, se debe usar una clave de API válida con restricciones de dirección IP para identificar el proyecto de cuota. De lo contrario, se ignora el parámetro quotaUser.

Para obtener más información sobre los parámetros del sistema de la API de Cloud y sus definiciones, consulta la tabla de definiciones de parámetros del sistema.

¿Qué sigue?