Panoramica dell'API Cloud Quotas

L'API Cloud Quotas consente di modificare a livello di programmazione le quote a livello di progetto e automatizzare le richieste di aggiustamento delle quote a livello di progetto. Ad esempio, puoi utilizzare l'API Cloud Quotas per:

  • Automatizza gli aggiustamenti delle quote: puoi utilizzare l'API Cloud Quotas per richiedere aggiustamenti delle quote in base ai tuoi criteri. Ad esempio, per evitare errori di superamento della quota, puoi utilizzare l'API per richiedere in modo programmatico una modifica della quota quando le risorse Compute Engine raggiungono l'80% della quota disponibile.

  • Riutilizzare le configurazioni delle quote in più progetti: l'API Cloud Quotas può clonare le configurazioni delle quote da un progetto all'altro. Se esiste un insieme noto di quote che devono essere aumentate per ogni nuovo progetto Google Cloud , puoi utilizzare l'API Cloud Quotas per automatizzare questa operazione nella logica di creazione del progetto. Le richieste di aggiustamento delle quote sono soggette ad Google Cloud approvazione.

  • Gestisci le richieste di quota dei clienti: se sei un fornitore SaaS integrato con Google Cloud, potresti ricevere richieste di aumento della quota tramite un portale rivolto ai clienti diverso dalla console Google Cloud . Queste richieste devono essere inoltrate a Google Cloud per l'elaborazione. L'API Cloud Quotas può inoltrare automaticamente le richieste dei clienti.

  • Attiva il controllo delle versioni della configurazione client: l'API Cloud Quotas è dichiarativa. Puoi trattare le configurazioni delle quote come codice e archiviarle nel tuo sistema di controllo delle versioni per la cronologia e il rollback.

Limitazioni

Cloud Quotas presenta le seguenti limitazioni:

  • Nella maggior parte dei casi, gli aggiustamenti dell'aumento della quota devono essere apportati a livello di progetto. Un numero limitato di prodotti supporta gli aggiustamenti dell'aumento della quota a livello di organizzazione. Per verificare se un prodotto Google Cloud supporta gli aggiustamenti dell'aumento della quota a livello di organizzazione, consulta la documentazione di quel prodotto.

  • Puoi richiedere aggiustamenti delle quote ridotte per le quote a livello di progetto, organizzazione e cartella.

Endpoint di servizio

L'endpoint di servizio è un URL di base che specifica l'indirizzo di rete di un servizio API. Un servizio potrebbe avere più endpoint. Il servizio API Cloud Quotas ha il seguente endpoint e tutti gli URI sono relativi a questo:

https://cloudquotas.googleapis.com

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per accedere alle risorse cloudquotas_quotaPreferences, cloudquotas_quotaInfos e cloudquotas_quotaAdjusterSettings, chiedi all'amministratore di concederti il ruolo IAM Cloud Quotas Admin (cloudquotas.admin) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene le autorizzazioni necessarie per accedere alle risorse cloudquotas_quotaPreferences, cloudquotas_quotaInfos e cloudquotas_quotaAdjusterSettings. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per accedere alle risorse cloudquotas_quotaPreferences, cloudquotas_quotaInfos e cloudquotas_quotaAdjusterSettings sono necessarie le seguenti autorizzazioni:

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

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Modello di risorsa API

Il modello di risorse dell'API Cloud Quotas è costituito da due risorse: QuotaPreference e QuotaInfo.

Preferenza per le quote

La risorsa QuotaPreference rappresenta la tua preferenza di quota per una particolare combinazione di dimensioni. Utilizza questa risorsa per modificare le quote nei tuoi progetti, cartelle o organizzazioni.

Impostare un valore preferito per una regione

L'esempio seguente mostra una risorsa QuotaPreference in un metodo CreateQuotaPreference.

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

Il preferredValue di 100 indica che il richiedente vuole che la quota GPUS-PER-GPU-FAMILY-per-project-region sia impostata su questo valore. Il campo delle dimensioni indica che la preferenza si applica solo alla regione us-central1.

Verificare il valore concesso

Visualizza la tua preferenza di quota e controlla il campo grantedValue per verificare il valore concesso.

Per visualizzare la preferenza di quota utilizzando Google Cloud CLI, esegui questo comando nel terminale:

gcloud alpha quotas preferences describe QUOTA_PREFERENCE_ID --project=PROJECT

Sostituisci quanto segue:

  • QUOTA_PREFERENCE_ID: l'ID della tua preferenza di quota. Questo è il valore specificato al momento della creazione della preferenza di quota.
  • PROJECT: l'ID o il numero del tuo progetto Google Cloud.

Se hai inviato una richiesta di aggiustamento della quota e la richiesta è stata approvata parzialmente, viene visualizzato un campo stateDetail dopo il campo grantedValue. grantedValue mostra l'aggiustamento apportato, mentre il campo stateDetail descrive lo stato di approvazione parziale.

Per verificare se il valore concesso è quello finale approvato, controlla il campo reconciling. Se la tua richiesta è ancora in fase di valutazione, il campo reconciling è impostato su true. Se il campo reconciling è impostato su false o viene omesso, il valore concesso è il valore finale approvato.

I seguenti snippet di codice mostrano esempi dell'oggetto delle preferenze di quota. Utilizzano una preferenza di quota demo con l'ID compute_googleapis_com-gpus-us-central1.

gcloud

Se visualizzi la preferenza di quota utilizzando gcloud CLI, l'output è simile al seguente:

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

REST

Se visualizzi la preferenza di quota utilizzando l'API Cloud Quotas, l'output è simile al seguente:

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

Questo output include i seguenti valori:

  • PROJECT_NUMBER: un identificatore univoco generato automaticamente per il tuo progetto.

La risposta mostra un grantedValue di 100, il che significa che l'preferredValue dell'esempio precedente è stato approvato ed eseguito. Le preferenze per le diverse dimensioni sono risorse QuotaPreference diverse. Ad esempio, QuotaPreference per la CPU nelle regioni us-central1 e us-east1 sono due risorse distinte.

La preferenza per la quota è obbligatoria

Le risorse QuotaPreference vengono utilizzate per indicare il valore preferito per una quota specifica. Il valore attuale di una quota specifica si basa su:

  • QuotaPreference richieste effettuate da te.

  • Richieste di aumento della quota approvate entro il giorno Google Cloud.

  • Modifiche alle quote avviate da Google Cloud.

La possibilità di eliminare un QuotaPreference non è supportata. Tuttavia, puoi impostare un valore di quota preferito inferiore al Google Cloud valore approvato per aggiungere ulteriori misure di protezione.

Per ulteriori informazioni sulla risorsa QuotaPreference, consulta il riferimento API Cloud Quotas.

Per ulteriori informazioni sulle query QuotaPreference, consulta Implementare casi d'uso comuni.

Informazioni sulla quota

QuotaInfo è una risorsa di sola lettura che fornisce informazioni su una quota specifica per un determinato progetto, cartella o organizzazione. Mostra le informazioni delle quote definite dai servizi Google Cloud e di eventuali aggiustamenti delle quote soddisfatti avviati dai clienti. La risorsa QuotaInfo contiene informazioni come metadati, tipo di contenitore e dimensione.

Impostare valori di quota diversi per regione

Il seguente esempio di risorsa QuotaInfo mostra che la quota CPU per il progetto è 200 per la regione us-central1 e 100 per tutte le altre regioni.

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

Questo output include i seguenti valori:

  • PROJECT_NUMBER: un identificatore univoco generato automaticamente per il tuo progetto.

Impostare una quota globale

Il seguente esempio di risorsa QuotaInfo mostra una quota di velocità con un intervallo di aggiornamento al minuto. Le dimensioni sono vuote, il che indica che si tratta di una quota globale. Tutte le quote senza una dimensione di regione o zona sono globali.

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

Questo output include i seguenti valori:

  • PROJECT_NUMBER: un identificatore univoco generato automaticamente per il tuo progetto.

Per ulteriori dettagli sulla risorsa QuotaInfo, consulta il riferimento API Cloud Quotas.

Per ulteriori dettagli sulle query QuotaPreference, consulta Implementare casi d'uso comuni.

Impostazioni di aggiustamento delle quote

La risorsa QuotaAdjusterSettings (Anteprima) rappresenta le impostazioni di aggiustamento della quota per un determinato progetto. Se abilitato, l'aggiustamento delle quote monitora l'utilizzo delle risorse specificate ed emette richieste di aggiustamento delle quote quando l'utilizzo delle risorse si avvicina al valore della quota.

  • Per visualizzare le impostazioni correnti di aggiustamento della quota per un progetto, utilizza un'operazione GET per recuperare la risorsa QuotaAdjusterSettings.

  • Per abilitare l'aggiustamento delle quote per un progetto, utilizza un'operazione PATCH per impostare le seguenti opzioni della risorsa QuotaAdjusterSettings:

      "quota_adjuster_settings" :{
         "name": "projects/PROJECT_NUMBER/locations/global/quotaAdjusterSettings",
         "enablement": ENABLED,
    }
    

    Sostituisci PROJECT_NUMBER con l'identificatore univoco del tuo progetto.

Per i dettagli, vedi Abilitare l'aggiustamento delle quote e Disattivare l'aggiustamento delle quote.

Nomi delle risorse

Le risorse sono entità denominate e sono identificate dai nomi risorsa. I nomi delle risorse vengono utilizzati in tutte le richieste e risposte e ogni risorsa deve avere il proprio nome univoco. Ogni nome della risorsa è codificato da un insieme di campi.

Risorsa delle preferenze di quota

La convenzione di denominazione per una risorsa QuotaPreference utilizza il seguente pattern:

projects/PROJECT_NUMBER/locations/global/quotaPreferences/QUOTA_PREFERENCE_ID

Puoi impostare quotaPreferenceId quando crei una preferenza di quota, altrimenti viene generato un ID. È consigliabile che uno schema di denominazione quotaPreferenceId codifichi il nome del servizio, l'ID quota, la località e altre dimensioni. Il quotaPreferenceId deve essere univoco per il progetto, la cartella o le organizzazioni.

Ad esempio, quotaPreference un pattern per codificare l'ID preferenza quota è il seguente:

SERVICE_LOCATION_DIMENSION1-VALUES-IN-ORDER

Il seguente esempio mostra questo pattern:

compute_us-central1_nvidia-200

Con un nome della risorsa, devi utilizzare il metodo GET per recuperare un QuotaPreference. Puoi anche chiamare il metodo PATCH con l'opzione allow_missing abilitata per creare o aggiornare un QuotaPreference.

Risorsa di informazioni sulla quota

La convenzione di denominazione per una risorsa QuotaInfo utilizza il seguente pattern:

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

Risorsa delle impostazioni di Aggiustamento delle quote

La convenzione di denominazione per una risorsa QuotaAdjusterSettings utilizza il seguente pattern:

projects/PROJECT_NUMBER/locations/global/quotaAdjusterSettings

Passaggi successivi