Présentation de l'API Cloud Quotas

L'API Cloud Quotas vous permet d'ajuster de manière automatisée des quotas au niveau du projet et d'automatiser les demandes d'ajustement de quota au niveau du projet. Par exemple, vous pouvez utiliser l'API Cloud Quotas pour:

  • Automatisez les ajustements de quota: vous pouvez utiliser l'API Cloud Quotas pour demander des ajustements de quota en fonction de vos propres critères. Par exemple, pour éviter les erreurs de dépassement de quota, vous pouvez utiliser l'API pour demander une augmentation de quota de manière automatisée lorsque les ressources Compute Engine atteignent 80 % du quota disponible.

  • Réutiliser les configurations de quota entre les projets: l'API Cloud Quotas peut cloner vos configurations de quota d'un projet à un autre. Si vous devez augmenter un ensemble connu de quotas pour chaque nouveau projet Google Cloud, vous pouvez utiliser l'API Cloud Quotas pour automatiser cette opération dans la logique de création de votre projet. Les demandes d'ajustement de quota sont soumises à l'approbation de Google Cloud.

  • Traiter les demandes de quota des clients: si vous êtes un fournisseur SaaS intégré à Google Cloud, vous pouvez recevoir des demandes d'augmentation de quota via un portail destiné aux clients autre que la console Google Cloud. Ces requêtes doivent être transférées à Google Cloud pour traitement. L'API Cloud Quotas peut transférer automatiquement les requêtes des clients.

  • Activer le contrôle des versions de la configuration du client: l'API Cloud Quotas est déclarative. Vous pouvez traiter les configurations de quota comme du code et stocker les configurations dans votre propre système contrôlé des versions pour l'historique et le rollback.

Limites

Cloud Quotas présente les limites suivantes :

  • Dans la plupart des cas, les ajustements d'augmentation de quota doivent être effectués au niveau du projet. Un nombre limité de produits accepte les ajustements visant une augmentation de quota au niveau de l'organisation. Pour savoir si un produit Google Cloud prend en charge les ajustements d'augmentation de quota au niveau de l'organisation, consultez la documentation du produit.

  • Vous pouvez demander des ajustements de diminution de quota pour les quotas au niveau du projet, de l'organisation et du dossier.

  • L'API Cloud Quotas n'accepte que les opérations au niveau du projet. Les opérations au niveau du dossier et de l'organisation ne sont pas prises en charge.

  • Dans la console Google Cloud, la page Quotas et limites du système n'accepte pas la sélection régionale ou zonale pour les demandes d'ajustement des quotas à partir du bouton Modifier. Pour ajuster les quotas au niveau régional ou zonal dans la console Google Cloud, consultez les instructions pour demander un quota plus élevé.

Point de terminaison de service

Un point de terminaison de service est une URL de base qui spécifie l'adresse réseau d'un service d'API. Un service peut posséder plusieurs points de terminaison. Le service d'API Cloud Quotas possède le point de terminaison suivant, et tous les URI sont relatifs :

https://cloudquotas.googleapis.com

Rôles requis

Pour obtenir les autorisations nécessaires pour accéder aux ressources cloudquotas_quotaPreferences et cloudquotas_quotaInfos, demandez à votre administrateur de vous accorder le rôle IAM Administrateur Cloud Quotas (cloudquotas.admin) sur le projet. Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

Ce rôle prédéfini contient les autorisations requises pour accéder aux ressources cloudquotas_quotaPreferences et cloudquotas_quotaInfos. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Vous devez disposer des autorisations suivantes pour accéder aux ressources cloudquotas_quotaPreferences et cloudquotas_quotaInfos :

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

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Modèle de ressource d'API

Le modèle de ressource de l'API Cloud Quotas se compose de deux ressources : QuotaPreference et QuotaInfo.

Préférence de quota

La ressource QuotaPreference représente vos préférences de quota pour une combinaison de dimension particulière. Utilisez cette ressource pour ajuster les quotas dans vos projets, dossiers ou organisations.

Définir une valeur préférée pour une région

L'exemple suivant montre une ressource QuotaPreference dans une méthode CreateQuotaPreference.

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

La valeur preferredValue de 100 indique que le demandeur souhaite que le quota GPUS-PER-GPU-FAMILY-per-project-region soit défini sur cette valeur. Le champ de dimensions indique que la préférence ne s'applique qu'à la région us-central1.

Vérifier la valeur accordée

L'exemple suivant montre une ressource QuotaPreference dans une méthode 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"
}

Ce résultat inclut les valeurs suivantes :

  • PROJECT_NUMBER: identifiant unique généré automatiquement pour votre projet.

La réponse affiche une valeur grantedValue de 100, ce qui signifie que la valeur preferredValue de l'exemple précédent a été approuvée et traitée. Les préférences pour différentes dimensions sont différentes ressources QuotaPreference. Par exemple, QuotaPreference pour le processeur dans les régions us-central1 et us-east1 sont deux ressources distinctes.

Veuillez indiquer une préférence de quota

Les ressources QuotaPreference sont utilisées pour indiquer votre valeur préférée pour un quota particulier. La valeur actuelle d'un quota particulier est basée sur :

  • Les requêtes QuotaPreference que vous avez effectuées.

  • Approbation des demandes d'augmentation de quota par Google Cloud.

  • Modifications apportées aux quotas initiés par Google Cloud

Il n'est pas possible de supprimer un objet QuotaPreference. Toutefois, vous pouvez définir une valeur de quota préférée inférieure à la valeur approuvée par Google Cloud pour ajouter des garde-fous.

Pour en savoir plus sur la ressource QuotaPreference, consultez la documentation de référence de l'API Cloud Quotas.

Pour en savoir plus sur les requêtes QuotaPreference, consultez Mettre en œuvre des cas d'utilisation courants.

Informations sur les quotas

QuotaInfo est une ressource en lecture seule qui fournit des informations sur un quota particulier pour un projet, un dossier ou des organisations spécifique. Elle affiche des informations sur les quotas définis par les services Google Cloud et sur les ajustements de quotas effectués par les clients. La ressource QuotaInfo contient des informations telles que les métadonnées, le type de conteneur et la dimension.

Définir différentes valeurs de quota par région

L'exemple de ressource QuotaInfo suivant montre que le quota de processeurs pour le projet est de 200 pour la région us-central1 et de 100 pour toutes les autres régions.

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

Ce résultat inclut les valeurs suivantes :

  • PROJECT_NUMBER: identifiant unique généré automatiquement pour votre projet.

Définir un quota mondial

L'exemple de ressource QuotaInfo suivant montre un quota de débit avec un intervalle d'actualisation par minute. Les dimensions sont vides, ce qui indique qu'il s'agit d'un quota mondial. Tous les quotas sans dimension de région ou de zone sont mondiaux.

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

Ce résultat inclut les valeurs suivantes :

  • PROJECT_NUMBER: identifiant unique généré automatiquement pour votre projet.

Pour en savoir plus sur la ressource QuotaInfo, consultez la documentation de référence de l'API Cloud Quotas.

Pour en savoir plus sur les requêtes QuotaPreference, consultez Mettre en œuvre des cas d'utilisation courants.

Noms de ressources

Les ressources sont des entités nommées et sont identifiées par des noms de ressources. Les noms de ressources sont utilisés dans toutes les requêtes et réponses, et chaque ressource doit posséder son propre nom de ressource unique. Chaque nom de ressource est encodé par un ensemble de champs.

Ressource de préférence de quota

La convention d'attribution de noms pour une ressource QuotaPreference utilise le modèle suivant :

projects/PROJECT_NUMBER/locations/global/quotaPreferences/QUOTA_PREFERENCE_ID

Vous pouvez définir quotaPreferenceId lors de la création d'une préférence de quota. Sinon, un ID est généré. Il est recommandé d'utiliser un schéma de nommage quotaPreferenceId pour encoder le nom du service, l'ID de quota, l'emplacement et d'autres dimensions. L'élément quotaPreferenceId doit être unique pour le projet, le dossier ou les organisations.

Pour la ressource quotaPreference par exemple, vous pouvez utiliser un modèle pour encoder votre ID de préférence de quota :

SERVICE_LOCATION_DIMENSION1-VALUES-IN-ORDER

L'exemple suivant illustre ce modèle :

compute_us-central1_nvidia-200

Avec un nom de ressource, vous devez utiliser la méthode GET pour récupérer un QuotaPreference. Vous pouvez également appeler la méthode UPDATE avec l'option allow_missing activée pour créer ou mettre à jour un QuotaPreference.

Ressource d'informations sur les quotas

La convention d'attribution de noms pour une ressource QuotaInfo utilise le modèle suivant :

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

Étape suivante