Descripción general de la API de Cloud Quotas

La API de Cloud Quotas te permite ajustar cuotas a nivel del proyecto y automatizar las solicitudes de ajuste de cuota a nivel del proyecto. Por ejemplo, puedes usar la API de Cloud Quotas para lo siguiente:

  • Automatiza los ajustes de cuota: Puedes usar la API de Cloud Quotas para solicitar ajustes de cuota según tus propios criterios. Por ejemplo, para evitar errores de cuota excedida, puedes usar la API para solicitar de manera programática un ajuste de cuota cuando los recursos de Compute Engine alcancen el 80% de la cuota disponible.

  • Reutiliza las configuraciones de cuotas en todos los proyectos: La API de Cloud Quotas puede clonar las configuraciones de cuotas de un proyecto a otro. Si hay un conjunto conocido de cuotas que debe aumentarse para cada proyecto nuevo de Google Cloud, puedes usar la API de Cloud Quotas para automatizar esto en la lógica de creación de tu proyecto. Las solicitudes de ajuste de cuotas están sujetas a la aprobación de Google Cloud.

  • Entrega solicitudes de cuotas de clientes: Si eres un proveedor de SaaS integrado en Google Cloud, es posible que recibas solicitudes de aumento de cuota a través de un portal orientado al cliente que no sea la consola de Google Cloud. Estas solicitudes se deben reenviar a Google Cloud para su procesamiento. La API de Cloud Quotas puede reenviar solicitudes de clientes de forma automática.

  • Habilita el control de versión de configuración del cliente: La API de Cloud Quotas es declarativa. Puedes tratar las configuraciones de cuota como código y almacenarlas en tu propio sistema controlado por versión para el historial y la reversión.

Limitaciones

Cloud Quotas tiene las siguientes limitaciones:

  • En la mayoría de los casos, los ajustes de aumento de cuota deben realizarse a nivel de proyecto. Una cantidad limitada de productos admite ajustes de aumento de cuota a nivel de la organización. Para ver si un producto de Google Cloud admite ajustes de aumento de cuota a nivel de la organización, consulta la documentación de ese producto.

  • Puedes solicitar ajustes de disminución de cuota para cuotas a nivel de proyecto, organización y carpeta.

  • La API de Cloud Quotas solo admite operaciones a nivel del proyecto. No se admiten las operaciones a nivel de carpeta y de organización.

  • En la consola de Google Cloud, la página Cuotas y límites del sistema no admite la selección regional o por zona para las solicitudes de ajuste de cuotas desde el botón Editar. Para ajustar las cuotas a nivel regional o zonal en la consola de Google Cloud, consulta las instrucciones para solicitar una cuota más alta.

Extremo de servicio

Un extremo de servicio es una URL base que especifica la dirección de la red de un servicio de API. Un servicio puede tener varios extremos. El servicio de la API de Cloud Quotas tiene el siguiente extremo, y todos los URI están relacionados con él:

https://cloudquotas.googleapis.com

Roles obligatorios

Para obtener los permisos que necesitas para acceder a los recursos cloudquotas_quotaPreferences y cloudquotas_quotaInfos, pídele a tu administrador que te otorgue el rol de IAM de Administrador de Cloud Quotas (cloudquotas.admin) en el proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene los permisos necesarios para acceder a los recursos cloudquotas_quotaPreferences y cloudquotas_quotaInfos. Para ver los permisos exactos que son necesarios, expande la sección Permisos necesarios:

Permisos necesarios

Se requieren los siguientes permisos para acceder a los recursos cloudquotas_quotaPreferences y cloudquotas_quotaInfos:

  • cloudquotas.quotas.update
  • cloudquotas.quotas.get
  • monitoring.timeSeries.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list

También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.

Modelo de recursos de la API

El modelo de recursos de la API de Cloud Quotas consta de dos recursos: QuotaPreference y QuotaInfo.

Preferencia de cuota

El recurso QuotaPreference representa tu preferencia de cuota para una combinación de dimensiones particular. Usa este recurso para ajustar las cuotas en tus proyectos, organizaciones o carpetas.

Establece un valor preferido para una región

En el siguiente ejemplo, se muestra un recurso QuotaPreference en un método CreateQuotaPreference.

{
    "service": "compute.googleapis.com",
    "quotaId": "GPUS-PER-GPU-FAMILY-per-project-region",
    "quotaConfig": {
        "preferredValue": 100
    },
    "dimensions": {
        "region": "us-central1"
    }
}

El preferredValue de 100 indica que el solicitante desea que la cuota GPUS-PER-GPU-FAMILY-per-project-region se establezca en ese valor. En el campo de dimensiones, se indica que la preferencia solo se aplica a la región us-central1.

Verifica el valor otorgado

En el siguiente ejemplo, se muestra un recurso QuotaPreference en un método GetQuotaPreference.

{
    "name": "projects/PROJECT_NUMBER/locations/global/quotaPreferences/compute_googleapis_com-gpus-us-central1",
    "service": "compute.googleapis.com",
    "quotaId": "GPUS-PER-GPU-FAMILY-per-project-region",
    "quotaConfig": {
        "preferredValue": 100,
        "grantedValue": 100,
        "traceId": "123acd-345df23",
        "requestOrigin": "ORIGIN_UNSPECIFIED"
    },
    "dimensions": {
        "region": "us-central1"
    },
    "createTime": "2023-01-15T01:30:15.01Z",
    "updateTime": "2023-01-16T02:35:16.01Z"
}

En esta salida, se incluyen los siguientes valores:

  • PROJECT_NUMBER: Un identificador único generado de forma automática para tu proyecto.

La respuesta muestra un grantedValue de 100, lo que significa que la preferredValue del ejemplo anterior se aprobó y se completó. Las preferencias para diferentes dimensiones son recursos QuotaPreference diferentes. Por ejemplo, QuotaPreference para la CPU en las regiones us-central1 y us-east1 son dos recursos distintos.

La preferencia de cuota es obligatoria

Los recursos QuotaPreference se usan para indicar tu valor preferido para una cuota en particular. El valor actual de una cuota en particular se basa en lo siguiente:

  • QuotaPreference solicitudes que realizaste.

  • Solicitudes de aumento de cuota aprobadas por Google Cloud.

  • Cambios en las cuotas que inició Google Cloud.

No se admite la capacidad de borrar una QuotaPreference. Sin embargo, puedes establecer un valor de cuota preferido más bajo que el valor aprobado de Google Cloud para agregar más barreras de seguridad.

Para obtener más información sobre el recurso QuotaPreference, consulta la referencia de la API de Cloud Quotas.

Para obtener más información sobre las consultas QuotaPreference, consulta Implementa casos de uso comunes.

Información de la cuota

QuotaInfo es un recurso de solo lectura que proporciona información sobre una cuota en particular para una carpeta, organizaciones o proyectos determinados. Muestra información de las cuotas definidas por los servicios de Google Cloud y cualquier ajuste de cuota completado que inicien los clientes. El recurso QuotaInfo contiene información como los metadatos, el tipo de contenedor y la dimensión.

Configura diferentes valores de cuota por región

En el siguiente ejemplo de recurso QuotaInfo, se muestra que la cuota de CPU del proyecto es de 200 para la región us-central1 y 100 para todas las demás regiones.

{
    "name": "projects/PROJECT_NUMBER/locations/global/services/compute.googleapis.com/quotaInfos/CPUS-per-project-region",
    "quotaId": "CPUS-per-project-region",
    "metric": "compute.googleapis.com/cpus",
    "containerType": "PROJECT",
    "dimensions": [
        "region"
    ],
    "isPrecise": true,
    "quotaDisplayName": "CPUs per project per region",
    "metricDisplayName": "CPUs",
    "dimensionsInfo": [
        {
            "dimensions": {
                "region": "us-central1"
            },
            "details": {
                "quotaValue": 200,
                "resetValue": 200
            },
            "applicableLocations": [
                "us-central1",
            ]
        },
        {
            "details": {
                "quotaValue": 100,
                "resetValue": 100
            },
            "applicableLocations": [
                "us-central2",
                "us-west1",
                "us-east1"
            ]
        }
    ]
}

En esta salida, se incluyen los siguientes valores:

  • PROJECT_NUMBER: Un identificador único generado de forma automática para tu proyecto.

Configura una cuota global

En el siguiente ejemplo de recurso QuotaInfo, se muestra una cuota de frecuencia con un intervalo de actualización por minuto. Las dimensiones están en blanco, lo que indica que esta es una cuota global. Todas las cuotas sin una dimensión de región o zona son globales.

{
    "name": "projects/PROJECT_NUMBER/locations/global/services/compute.googleapis.com/quotaInfos/ReadRequestsPerMinutePerProject",
    "quotaId": "ReadRequestsPerMinutePerProject",
    "metric": "compute.googleapis.com/read_requests",
    "refreshInterval": "minute",
    "containerType": "PROJECT",
    "dimensions": [],
    "isPrecise": false,
    "quotaDisplayName": "Read Requests per Minute",
    "metricDisplayName": "Read Requests",
    "dimensionsInfo": [
        {
            "details": {
                "quotaValue": 100,
                "resetValue": 200
            },
            "applicableLocations": [
                "global"
            ]
        }
    ]
}

En esta salida, se incluyen los siguientes valores:

  • PROJECT_NUMBER: Un identificador único generado de forma automática para tu proyecto.

Para obtener más detalles sobre el recurso QuotaInfo, consulta la referencia de la API de Cloud Quotas.

Para obtener más detalles sobre las consultas QuotaPreference, consulta Implementa casos de uso comunes.

Nombres de recursos

Los recursos son entidades con nombre y se identifican con nombres de recursos. Los nombres de recursos se usan en todas las solicitudes y respuestas, y cada recurso debe tener su propio nombre único. Cada nombre de recurso está codificado por un conjunto de campos.

Recurso de preferencia de cuota

La convención de nombres para un recurso QuotaPreference usa el siguiente patrón:

projects/PROJECT_NUMBER/locations/global/quotaPreferences/QUOTA_PREFERENCE_ID

Puedes configurar quotaPreferenceId cuando creas una preferencia de cuota; de lo contrario, se genera un ID. Se recomienda que un esquema de nombres quotaPreferenceId codifique el nombre del servicio, el ID de cuota, la ubicación y otras dimensiones. El quotaPreferenceId debe ser único para el proyecto, la carpeta o las organizaciones.

Como quotaPreference de ejemplo Un patrón para codificar tu ID de preferencia de cuota es el siguiente:

SERVICE_LOCATION_DIMENSION1-VALUES-IN-ORDER

En el siguiente ejemplo, se muestra este patrón:

compute_us-central1_nvidia-200

Con un nombre de recurso, debes usar el método GET para recuperar un QuotaPreference. También puedes llamar al método UPDATE con la opción allow_missing habilitada para crear o actualizar un QuotaPreference.

Recurso de información de la cuota

La convención de nombres para un recurso QuotaInfo usa el siguiente patrón:

projects/PROJECT_NUMBER/locations/global/services/SERVICE_NAME/quotaInfos/QUOTA_ID

Próximos pasos